Ich bin auf der Suche nach einigen Abfragen mit vorbereiteten Anweisungen auf einer Website mit hohem Traffic zu beschleunigen. Was ich nicht richtig verstehe, ist der Nutzen vorbereiteter Anweisungen, es sei denn, sie können über mehrere Verbindungen vorbereitet bleiben. Es scheint, dass dies mit PDO nicht möglich ist, was auch keine persistenten Verbindungen zulässt. Die persistenten Verbindungsfunktionen erlauben jedoch kein PDO.mysql permanent vorbereitete Anweisungen
können für Argumente willen, ich habe eine Abfrage 5000 Mal pro Sekunde leite: SELECT * FROM some_table WHERE some_column LIKE ‚some_value‘ von neu kompilieren und Auswertung
von dem, was ich verstehe, PDO MySQL würde verhindern, dass die Frage, ob ich "some_value" jedes Mal ändern wollte, wenn ich abfragen musste. Ich verstehe auch, dass "some_value" in Binär statt in ASCII übertragen werden könnte, um Bandbreite zu sparen, aber es würde nicht viel sparen, wenn ich die gesamte Abfrage jedes Mal senden müsste, wenn ich die Verbindung öffne.
auch von dem, was ich gelesen habe, gespeicherte Prozeduren sind nicht die Lösung, denn diese bleiben auch nicht über mehrere Verbindungen kompiliert.
Gibt es eine Lösung für dieses Problem? eine vorbereitete Aussage irgendwo auf dem Server speichern und sie im Speicher kompiliert halten und bereit sein zu feuern, sobald sie die Variablen empfängt?
Gibt es eine Möglichkeit, dies durch die Kombination von Verbindungspooling mit PDO zu erreichen? (Obwohl ich auch gehört habe Connection Pooling ist nicht ideal, weil es unter bestimmten Bedingungen Blockierung verursachen kann)
Wenn Sie persistente Verbindungen verwenden, müssen Sie PDO :: ATTR_PERSISTENT in der Anordnung von Treiberoptionen an das PDO-Konstruktor übergeben . Wenn dieses Attribut nach der Instantiierung des Objekts mit PDO :: setAttribute() festgelegt wird, verwendet der Treiber keine persistenten Verbindungen. –
Warum nicht Memcached verwenden? –