Ich versuche also herauszufinden, was schneller ist als db_query, db_select oder EntityFieldQuery. Derzeit verwende ich EntityFieldQuery. Ich greife nach ungefähr 1600 Knoteneinträgen.
Mir ist klar, dass dies das System belasten kann, und ich möchte nur herausfinden, welche Option am besten für 1600 Knoten geeignet ist. Bei der Anwendung, die ich erstelle, ist es sehr wichtig, Sekunden oder sogar Millisekunden zu sparen.
Vielen Dank im Voraus für Ihre Antworten.
Antworten:
Um Ihre Frage kurz zu beantworten: db_query ist die schnellste! Hier sind einige Gründe, Fakten und Zahlen aus verschiedenen Fragen, Quellen zusammengestellt:
Wenn Sie diese Frage einfach googeln, erhalten Sie die folgenden Ergebnisse:
und das
Wenn Sie oben bemerken, führt db_select mehr Funktionsaufrufe durch und belegt mehr Speicher als db_query.
Ich denke, die Auswahl sollte sich ausschließlich nach Ihren Anforderungen richten. EntityFieldQuery ist zwar langsamer, bietet jedoch viele Vorteile wie einfache Syntax, steckbare Feldspeicherung, lose Kopplung und vieles mehr.
quelle
Das ist eine sehr schlechte Idee, bei 1600 Knoten sollten Sie die APIs nicht umgehen und EntityFieldQuery verwenden. Sie optimieren das Falsche.
quelle
Wenn Sie nur die Felddaten von allen 1600 Knoten benötigen , ist EFQE möglicherweise hilfreich. Wenn Sie bereits über den EFQ verfügen, sollten Sie in der Lage sein, anhand der Sandbox-Seite herauszufinden, was Sie benötigen.
quelle