Verbessern Sie Ihre MySQL-Abfrage Zeiten in Ihrem PHP-Skript erhöht Ihre Internetgeschwindigkeit und verhindert Skript Auszeiten auftritt. PHP ist eine Skriptsprache, mit Funktionen zum Erstellen dynamischer Webseiten. MySQL ist ein relationales Datenbank -Management-System , das mehrere Benutzer mit Zugriff auf Datenbanken auf einem Server. Untersuchen Sie die Ursache des langsamen Abfragen mit der "erklären" Aussage , so dass das Log für langsame Abfragen und Timing Ihrer Anfragen Witz der " microtime "-Funktion . Mit dem PDO - MySQL-Erweiterung und Modernisierung Ihrer PHP -und MySQL- Versionen könnten jedoch ebenfalls zur Beschleunigung der Abfragen. Anleitung
1
Aktualisieren Sie Ihre PHP und MySQL auf die neuesten Versionen von ihren Websites . Alte Versionen manchmal miteinander in Konflikt geraten , während neuere Versionen Bugfixes verfügen und sind eher zu sein, miteinander kompatibel .
2
Öffnen Sie Ihre MySQL " my.cnf "-Datei in einem Texteditor wie Windows Notepad. Suchen Sie und setzen Sie die " log_slow_queries " auf " ON " anstelle von "AUS". Stellen Sie die " long_query_time " auf einen niedrigen Wert wie z. B. "1" und notieren Sie die "log - slow-queries "-Verzeichnis. Laden Sie Ihre MySQL-Dienst . Die " mysql- slow.log " zeigt nun , welche Abfragen lange ausführen zu nehmen. Dies wird Ihnen helfen zu ermitteln , wie häufig Ihre Anfrage wird langsam ausgeführt wird.
3
Platz die "erklären" Anweisung in der Abfrage vor einer "SELECT" -Anweisung, um Informationen aus dem Optimierer abzurufen darüber, wie Ihre Abfrage ausgeführt wird. Die Ausgabe kann sich herausstellen, die Ursache für Ihre langsame Abfragen , wie zB ein fehlender Index
4
Zeit Ihre PHP -Abfrage mit dem " microtime "-Funktion , indem Sie den folgenden Code , wo Ihre Abfrage befindet: .
$ TIME_BEG = microtime (true);
//platzieren Sie Ihre Anfrage hier
$ time_end = microtime (true);
$ time_res = $ time_end - $ time_start ;
echo " die Abfrage nahm $ time_res Sekunden ";
Dies hilft sicherzustellen, dass die Abfrage der langsame Teil und nicht einem anderen Teil des Codes ist . Führen Sie den Code mehrmals , bis Sie eine einheitliche Zeit haben. Vergleichen Sie diesen Zeitwert , wenn Sie irgendwelche zukünftigen Zeitpunkt Änderungen vornehmen
5
für eventuelle Fehler mit dem " mysql_error "-Funktion überprüfen , indem Sie den folgenden Code , wo Ihre Abfrage befindet: .
$ result = mysql_query ( $ query);
if {
$ msg = ' Abfrage -Fehler: ' mysql_error () ( $ result ! ) . . " \\ n";
Matrize ( $ msg )
}
6
Verwenden Sie den PHP PDO_MYSQL Erweiterung Ihrer Datenbank anstelle des Standard " mysql_query " oder abfragen " mysqli "-Funktionen . Die Erweiterung nutzt MySQL PDO_MYSQL die native Unterstützung vorbereitete Erklärung , die die Geschwindigkeit Ihres Abfragen können . Der folgende Code ist ein Beispiel , wie man eine MySQL-Abfrage mit der Erweiterung PDO_MYSQL senden :
$ db_info = ' mysql : host = localhost ; port = 3306 ; dbname = mydb ';
$ user = 'username' ;
$ pass = 'password' ;
try { $
db_handle = new PDO ($ db_info , $ user , $ pass );
}
catch ( PDOException $ exception ) {
printf (" Fehler: % s" , $ exception -> getMessage ());
}
$ db_handle -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION );
$ db_handle -> setAttribute ( PDO :: ATTR_AUTOCOMMIT , false);
< p> $ sql = "SELECT * FROM MyTable ";
$ result_set = $ db_handle -> query ( $ sql );
$ result_set -> setFetchMode ( PDO :: FETCH_ASSOC ) ;
while ($ row = $ result_set -> fetch () ) { $
data = $ row [" mycolumn "] ; }
< p> $ result_set -> closeCursor ();