Förbättra din MySQL Query gånger i din PHP-skript ökar din surfning hastighet och förhindrar outs script tiden uppstår . PHP är ett skriptspråk med funktioner som hjälper dig att skapa dynamiska webbsidor . MySQL är en relationsdatabas management system som ger flera användare med tillgång till databaser på en server . Undersök orsaken till långsamma frågor med " förklara" uttalande , gör den långsamma sökfrågeloggen och timing dina frågor vett " microtime " funktionen . Använda PDO - MYSQL förlängning och uppgradera din PHP och MySQL versioner kan också bidra till att påskynda frågor . Instruktioner
1
Uppdatera din PHP och MySQL till de senaste versionerna från sina webbplatser . Gamla versioner konflikt ibland med varandra medan nyare versioner har buggfixar och är mer benägna att vara kompatibla med varandra .
2
Öppna din MySQL : s " my.cnf " filen i en textredigerare, till exempel Windows Anteckningar . Leta upp och ställ in " log_slow_queries " alternativet på "ON " i stället för "AV" . Ställ in " long_query_time " till ett lågt antal som " 1 " och notera " log - slow - frågor " katalogen . Ladda din MySQL tjänsten . Den " mysql - slow.log " kommer nu att visa vilka frågor tar lång tid att utföra . Detta kommer att hjälpa dig att identifiera hur ofta din fråga körs långsamt . Addera 3
Placera " förklara" uttalande i frågan innan ett " SELECT " sats för att hämta information från Optimizer om hur din fråga kommer att utföras . Den resulterande utsignalen kan avslöja orsaken till din långsam fråga , såsom en saknad index
4
Time din PHP frågan med " microtime " funktionen genom att lägga till följande kod där din fråga är belägen: .
$ time_beg = microtime ( true ) ;
//placera din fråga här
$ time_end = microtime ( true ) ;
$ time_res = $ time_end - $ time_start ,
echo " frågan tog $ time_res sekunder " ,
Detta bidrar till att bekräfta att frågan är den långsamma delen och inte någon annan del av din kod . Kör kod flera gånger tills du har en jämn gång . Jämför detta tidsvärde när du gör eventuella framtida timing ändringar
5
Kontrollera för eventuella fel med " mysql_error " funktionen genom att lägga till följande kod där din fråga är belägen: .
$ result = mysql_query ( $ query ) ;
om {
$ msg = ' Query error : ' mysql_error ( ) ( $ result ! ) . . " \\ n ";
die ( $ msg ) katalog
}
6
Använd PHP PDO_MYSQL förlängningen att fråga din databas istället för standard " mysql_query " eller " mysqli " funktioner . Den PDO_MYSQL förlängningen använder MySQL hemland förberett uttalande stöd , vilket kan hjälpa till att snabba upp dina frågor . Följande kod är ett exempel på hur man skickar en MySQL Query med PDO_MYSQL förlängningen :
$ db_info = ' mysql : host = localhost , port = 3306 ; dbname = mydb ' ;
$ user = ' username ' ,
$ pass = ' lösenord';
try {
$ db_handle = new PDO ( $ db_info , $ user , $ pass ) ;
}
fångst ( PDOException $ undantag ) {
printf ( " Fel : % s " , $ undantag - > getMessage ( ) ) ;
}
$ db_handle - > setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ) ,
$ db_handle - > setAttribute ( PDO :: ATTR_AUTOCOMMIT , false ) ;
$ sql = " SELECT * FROM mytable ";
$ result_set = $ db_handle - > query ( $ sql ) ;
$ result_set - > setFetchMode ( PDO :: FETCH_ASSOC ) ;
while ( $ row = $ result_set - > fetch ( ) ) {
$ uppgifter = $ rad [ " mycolumn " ] ;
}
$ result_set - > closeCursor ( ) ;