PHP: Wie kann MySQL am schnellsten abgefragt werden? Weil PDO schmerzhaft langsam ist

8

Ich muss eine einfache Abfrage durchführen.

Alles, was ich tun muss, ist:

%Vor%

Wenn ich PHP PDO verwende, das ich gelesen habe, ist die empfohlene Methode, um eine Verbindung zu einer MySQL-Datenbank herzustellen, genügt es, die Verbindung zu erstellen, wenn Sie 610ms haben.

Mein Code ist unten:

%Vor%

Frage : Was ist der schnellste Weg für mich, eine Verbindung zu meiner MySQL-Datenbank herzustellen, um die obige Abfrage durchzuführen?

    
nickb 04.09.2010, 05:28
quelle

4 Antworten

8

Schnellstmöglich:

%Vor%

[EDIT]: Verwenden Sie nun mysqli anstelle von mysql.

    
shamittomar 04.09.2010, 05:33
quelle
11

Wenn die Langsamkeit darauf zurückzuführen ist, dass für jede Verbindung das Netzwerk erreicht werden muss und mysql eine umgekehrte DNS-Suche durchführen muss, um seine GRANTs-Tabelle zu überprüfen, könnte dieser Overhead sehr wohl einen großen Teil der Latenz ausmachen. Durch den Wechsel zu persistenten Verbindungen würde dies zu einmaligen Kosten für die Lebensdauer der Verbindung führen.

Dies führt jedoch zu anderen Problemen. Da Transaktionen zurückgesetzt werden und Sperren aufgehoben werden, wenn die Verbindung, die sie enthält, geschlossen wird, bedeutet Persistent, dass sie aktiv bleiben. Ohne große Sorgfalt in Ihrem Code, um die Verbindung nicht in einem inkonsistenten Zustand zu lassen, können Sie sehr gut einen Deadlock erstellen oder zumindest alle anderen Verbindungen sperren, bis Sie manuell einsteigen und aufräumen.

    
Marc B 04.09.2010 06:26
quelle
6

Guess PDO ist so schnell wie MYSQLI. Ich denke dein Problem ist, wie du dich mit PDO verbindest. Wahrscheinlich sieht Ihre Verbindungskette wie folgt aus:

%Vor%

Und da ist das Problem ... PDO versucht sich mit localhost zu verbinden, aber PDO benutzt den DNS um localhost in 127.0.0.1 umzuwandeln und das kostet Zeit. Wenn Sie 127.0.0.1 direkt verwenden, haben Sie diese Probleme nicht mehr :) Also muss der Verbindungsstring aussehen wie

%Vor%     
Dwza 17.07.2013 09:46
quelle
2

ab Version php 5.3.0 ist der schnellste und leichteste Weg, von php aus in db aufzurufen:

Dieses Beispiel verwendet mysql / ext (nicht mysqli) und ruft gespeicherte Prozeduren auf

%Vor%

Die gespeicherte Prozedur:

%Vor%     
Jon Black 04.09.2010 09:54
quelle

Tags und Links