PHP PDO: Wie wirkt sich die erneute Vorbereitung einer Anweisung auf die Leistung aus?

Ich schreibe eine halb-einfache Datenbank-Wrapper-Klasse und möchte eine Abrufmethode haben, die funktionieren würdeautomagisch: Es sollte jede andere Anweisung nur beim ersten Mal vorbereiten und die Abfrage nur bei aufeinanderfolgenden Aufrufen binden und ausführen.

Ich denke die Hauptfrage ist:Wie funktioniert es, die gleiche MySql-Anweisung erneut vorzubereiten? Wird PDO die Anweisung auf magische Weise erkennen (das muss ich nicht) und den Vorgang beenden?

WennnichtIch plane, dies durch Generieren eines eindeutigen Schlüssels für jede unterschiedliche Abfrage zu erreichen und die vorbereiteten Anweisungen in einem privaten Array im Datenbankobjekt zu speichern - unter seinem eindeutigen Schlüssel. Ich plane, den Array-Schlüssel auf eine der folgenden Arten zu erhalten (von denen mir keine gefällt). In der Reihenfolge der Präferenz:

Lassen Sie den Programmierer beim Aufruf der Methode einen zusätzlichen, immer gleichen Parameter übergeben - etwas im Sinne vonbasename(__FILE__, ".php") . __LINE__ (Diese Methode funktioniert nur, wenn unsere Methode in einer Schleife aufgerufen wird. Dies ist in den meisten Fällen der Fall, in denen diese Funktionalität benötigt wird.)Lassen Sie den Programmierer eine völlig zufällige Zeichenfolge (die höchstwahrscheinlich zuvor generiert wurde) als zusätzlichen Parameter übergebenVerwenden Sie die übergebene Abfrage selbst, um den Schlüssel zu generieren und den Hash der Abfrage oder ähnliches abzurufenErreiche das Gleiche wie die erste Kugel (oben), indem du aufrufstdebug_backtrace

Hat jemand ähnliche Erfahrungen? Obwohl das System, für das ich arbeitetut Ich sollte ein wenig auf die Optimierung achten (sie ist ziemlich groß und wächst von Woche zu Woche). Vielleicht mache ich mir um nichts Sorgen und es bringt keinen Leistungsvorteil, das zu tun, was ich tue.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage