J'ai une table de base de données personnalisée contenant de nombreuses données que j'aimerais interroger plusieurs fois à partir d'un fichier de modèle personnalisé que j'ai créé. Dites que la table db ressemble à ceci:
id name city Zip
23 Mike New York 123
54 Peter Los Angeles 456
78 Steven Chicago 789
79 Tom Los Angeles 450
Et je veux lancer au moins quatre requêtes, ressemblant un peu à ceci:
SELECT * FROM table LIMIT $paginated,10 (this is presenting all of the names)
SELECT id,city FROM table GROUP BY city (this will be a dropdown list of all the citys)
SELECT Zip FROM table WHERE city = "New York" GROUP BY Zip
Cela ne fait que trois requêtes, mais de toute façon - est-il plus efficace d'exécuter une seule requête volumineuse avec toutes les données dans un tableau, puis de simplement boucler ce tableau à tout moment, ou est-il préférable d'effectuer des requêtes de base de données réelles?
J'utilise $ wpdb-> get_results pour chaque requête, est-ce plus difficile pour le serveur de fonctionner? Je veux dire, utiliser le code WP pour effectuer des requêtes dans la base de données devrait donner plus de code PHP au compilateur à traduire, ai-je tort?
L'objet $wpdb
est basé sur ezSQL , il n'ajoute pas beaucoup de temps système, je ne m'inquiéterais donc pas pour cela. Ouvrir une deuxième connexion à la base de données vous-même entraînera probablement plus de temps système que l’utilisation des fonctions $wpdb
.
Les trois requêtes que vous avez décrites sont des requêtes idéales dans la base de données (un petit ensemble de résultats provenant d'un grand ensemble de données). Par conséquent, vous ne devez pas les émuler en PHP. Assurez-vous d’ajouter quelques index à la table pour accélérer les requêtes (un sur city
au moins). Utilisez la fonction EXPLAIN
de MySQL pour savoir ce que la base de données fait pour exécuter votre requête et comment vous pouvez l’aider.