Thinkorm est une bibliothèque PHP ORM open source qui fournit une méthode de fonctionnement de la base de données concise. Dans le développement réel, nous rencontrons souvent le problème de la requête de base de données inefficace, ce qui conduit à un temps de transmission de réseau excessif. Cet article présentera comment optimiser les instructions de requête de la base de données via Thinkorm pour réduire le temps de transmission du réseau.
Tout d'abord, vous devez installer la bibliothèque Thinkorm. Vous pouvez l'installer via Composer et exécuter la commande suivante:
Le compositeur nécessite Topthink / Think-Over
Une fois l'installation terminée, vous devez configurer les informations de connexion de la base de données dans le fichier de configuration de l'application. Par exemple, ajoutez ce qui suit dans config / database.php:
Retour [ 'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'database_name', 'username' => 'root', 'mot de passe' => 'mot de passe', 'hostport' => '3306', 'charset' => 'utf8', 'préfixe' => '', 'debug' => false, 'Deploy' => 0, 'rw_separate' => false, 'Master_num' => 1, 'fields_strict' => true, 'resultset_type' => 'array', 'auto_timestamp' => false, 'datetime_format' => 'ymd h: i: s', 'sql_explain' => false, ]]
Ensuite, nous utiliserons plusieurs exemples pour montrer comment utiliser Thinkorm pour optimiser les instructions de requête et réduire le temps de transmission du réseau.
Par défaut, lorsque nous utilisons la méthode Rechercher ou sélectionner pour interroger les données, toutes les colonnes seront renvoyées. En fait, nous ne pouvons avoir besoin que de données que pour certaines colonnes, nous pouvons donc utiliser la méthode de sélection pour spécifier les colonnes qui doivent être interrogées, réduisant ainsi la quantité de données transmises.
// interroge le nom et le courrier électronique de l'utilisateur avec ID 1 $ user = db :: table ('utilisateur') -> où ('id', 1) -> select ('name, e-mail') -> find ();
Dans certains cas, nous devons interroger les données pertinentes à partir de plusieurs tables de données. Pour le moment, vous pouvez utiliser la méthode de jointure pour effectuer des requêtes d'association pour éviter d'interroger plusieurs fois la base de données.
// Interroge les informations de commande de l'utilisateur $ ordonnance = db :: table ('commander') -> alias ('o') -> join ('user u', 'o.user_id = u.id') -> Field ('o.order_id, o.create_time, U.Name') -> où ('u.id', 1) -> select ();
Si nous n'avons qu'à interroger les premiers éléments de données, au lieu de toutes les données, nous pouvons utiliser la méthode limite pour limiter l'ensemble de résultats de la requête, réduisant ainsi la quantité de transmission de données.
// interroge les 10 premières informations de commande $ commandes = db :: table ('commander') -> limite (10) -> select ();
Si les données de requête ne changent pas pendant une période de temps, vous pouvez utiliser la méthode de cache pour mettre en cache les résultats de la requête. De cette façon, au cours des requêtes ultérieures, les données peuvent être obtenues directement à partir du cache pour réduire l'accès à la base de données.
// Interroge l'utilisateur avec ID 1 et cachez le résultat $ user = db :: table ('utilisateur') -> où ('id', 1) -> cache (true) -> find (); // obtient le résultat directement à partir du cache lors de la deuxième requête $ user = db :: table ('utilisateur') -> où ('id', 1) -> cache (true) -> find ();
Grâce aux exemples ci-dessus, nous pouvons voir que Thinkorm fournit une variété de façons d'optimiser les requêtes, telles que les requêtes sélectives, les requêtes associées, les requêtes restreintes et les requêtes en cache. En utilisant ces fonctions d'optimisation, l'efficacité des requêtes de base de données peut être considérablement améliorée, la transmission de réseau inutile peut être réduite, améliorant ainsi les performances du système et l'expérience utilisateur.