Aggiorna il tuo PHP e MySQL per le ultime versioni dai loro siti web . Vecchie versioni a volte in conflitto tra loro , mentre le versioni più recenti sono dotate di correzioni di bug e hanno maggiori probabilità di essere compatibili tra loro .
2
Aprire il file " my.cnf " di MySQL in un editor di testo come ad esempio Windows Blocco note . Individuare e impostare l'opzione " log_slow_queries " su "ON " al posto di "OFF" . Impostare il " long_query_time " per un numero basso , ad esempio " 1" e prendere nota della directory "log- slow - queries " . Ricarica il tuo servizio MySQL . Il " mysql - slow.log " ora visualizza le query che richiedono molto tempo per l'esecuzione. Questo vi aiuterà a identificare la frequenza con cui la query è in esecuzione lentamente .
3
Posizionare l'istruzione "spiegare" nella query prima che una dichiarazione "SELECT" per recuperare informazioni da l'ottimizzatore a come la vostra query verrà eseguita. L'output risultante può rivelare la causa della vostra query lente , come ad esempio un indice mancante
4
Ora la query PHP con la funzione " microtime " aggiungendo il seguente codice in cui si trova la query : .
$ time_beg = microtime ( true);
//fare la tua ricerca qui
$ time_end = microtime ( true);
$ time_res = $ time_end - $ time_start ;
echo " la query ha avuto $ time_res secondi " ;
che contribuisce a confermare che la query è la parte più lenta e non qualche altra parte del codice. Eseguire il codice più volte fino a quando si ha un tempo costante. Confrontare questo valore di tempo in cui si apportano modifiche future tempistica
5
verificare eventuali errori con la funzione " mysql_error " aggiungendo il seguente codice in cui si trova la query : .
$ risultato = mysql_query ( $ query ) ;
se {
$ msg = ' Query di errore: ' mysql_error ( ) ( $ risultato! ) . . " \\ n";
die ( $ msg ) per
}
6
utilizzare l'estensione pdo_mysql PHP per interrogare il database invece dello standard " mysql_query " o funzioni " mysqli ". L'estensione pdo_mysql utilizza il supporto di MySQL nativo dichiarazione preparata , che può aiutare a velocizzare le query . Il codice seguente è un esempio di come inviare una query MySQL con l'estensione pdo_mysql :
$ db_info = ' mysql : host = localhost ; port = 3306 ; dbname = miodb ';
$ user = 'username' ;
$ passaggio = ' password';
try {
$ db_handle = new PDO ( $ db_info , $ user , $ pass) ;
}
cattura
( PDOException $ eccezione ) {
printf ( "Errore : % s" , $ exception - > getMessage ( ) ) ;
}
$ db_handle - > setAttribute ( PDO :: ATTR_ERRMODE , DOP :: ERRMODE_EXCEPTION ) ;
$ db_handle - > setAttribute ( PDO :: ATTR_AUTOCOMMIT , false) ;
$ sql = "SELECT * FROM tabella " ;
$ result_set = $ db_handle - > query ( $ sql ) ;
$ result_set - > setFetchMode ( PDO :: FETCH_ASSOC ) ;
while ( $ row = $ result_set - > fetch ( ) ) {
$ data = $ row [ " mycolumn " ] ; }
$ result_set - > closeCursor ();
Programmazione © www.354353.com