it-swarm.com.de

Effektivste Verwendung von DB-Abfragen

Ich habe eine benutzerdefinierte Datenbanktabelle mit vielen Daten, die ich mehrmals aus einer von mir erstellten benutzerdefinierten Vorlagendatei abfragen möchte. Angenommen, die DB-Tabelle sieht folgendermaßen aus:

id     name     city          Zip
23     Mike     New York      123
54     Peter    Los Angeles   456
78     Steven   Chicago       789
79     Tom      Los Angeles   450

Und ich möchte mindestens vier Abfragen ausführen, die ungefähr so ​​aussehen:

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

Das sind jedoch nur drei Abfragen - ist es effektiver, nur eine große Abfrage mit allen Daten in einem Array auszuführen und dieses Array dann immer dann zu schleifen, wenn es benötigt wird, oder ist es besser, tatsächliche Datenbankabfragen durchzuführen?

Ich verwende $ wpdb-> get_results für jede Abfrage. Ist es für den Server schwieriger, damit zu arbeiten? Ich meine, die Verwendung von WP Code zur Ausführung von DB-Abfragen sollte zu mehr PHP Code führen, den der Compiler übersetzen muss. Liege ich falsch?

2
Richard B

Das $wpdb -Objekt basiert auf ezSQL , es fügt nicht viel Overhead hinzu, daher würde ich mir darüber keine Sorgen machen. Wenn Sie selbst eine zweite Verbindung zur Datenbank herstellen, ist der Aufwand wahrscheinlich höher als bei Verwendung der Funktionen $wpdb.

Die drei von Ihnen beschriebenen Abfragen sind ideale Abfragen für die Datenbank (eine kleine Ergebnismenge aus einer großen Datenmenge). Sie sollten sie daher nicht in PHP emulieren. Stellen Sie sicher, dass Sie der Tabelle einige Indizes hinzufügen, um die Abfragen zu beschleunigen (mindestens einen für city). Verwenden Sie die Funktion EXPLAIN von MySQL, um zu erfahren, wie die Datenbank Ihre Abfrage ausführt und wie Sie ihr helfen können.

3
Jan Fabry