Forbedre MySQL søket ganger i din PHP script øker surfingen din hastighet og hindrer script tid outs oppstår. PHP er et skriptspråk med funksjoner for å hjelpe deg å lage dynamiske websider . MySQL er en relasjonsdatabase styringssystem som gir flere brukere med tilgang til databaser på en server. Undersøke årsaken til langsomme spørringer med " forklar" statement , slik at langsom spørsmål logg og timingen din spørringer vidd " microtime "-funksjonen . Bruke PUD - MYSQL utvidelse og oppgradering av PHP og MySQL-versjoner kan også bidra til fortgang spørringer . Instruksjoner
en
Oppdater PHP og MySQL til de nyeste versjonene fra deres nettsider . Gamle versjoner noen ganger i konflikt med hverandre mens nyere versjonene har feilrettinger og er mer sannsynlig å være kompatible med hverandre .
2
Åpne MySQL er " my.cnf "-filen i et tekstredigeringsprogram, for eksempel Windows Notepad . Finne og sette på " log_slow_queries " til " ON" i stedet for " OFF" . Sett " long_query_time " til et lavt tall, for eksempel "1" og legg merke til " log- slow -spørringer " katalogen . Last din MySQL -tjenesten . "Mysql - slow.log " vil nå vise hvilke spørringer ta lang tid å utføre. Dette vil hjelpe deg å identifisere hvor ofte din spørring utfører sakte .
3
Plasser " forklar" statement i søket før en "SELECT " statement å hente informasjon fra Optimizer om hvordan din søket vil bli utført. Den resulterende produksjonen kan avsløre årsaken til treg spørring, for eksempel en manglende indeks
4
Tid din PHP søket med " microtime "-funksjonen ved å legge følgende kode der spørringen er plassert: .
$ time_beg = microtime ( true);
//legg inn spørsmålene dine her
$ time_end = microtime ( true);
$ time_res = $ time_end - $ time_start ;
echo " spørringen tok $ time_res sekunder ";
p Dette bidrar til å bekrefte at søket er den langsomme delen og ikke noen annen del av koden din . Kjøre koden flere ganger til du har en konsekvent tid . Sammenlign dette tidsverdien når du gjør eventuelle fremtidige timing modifikasjoner
5
Sjekk for eventuelle feil med " mysql_error "-funksjonen ved å legge følgende kode der spørringen er plassert: .
$ resultat = mysql_query ( $ query ) ;
hvis {
$ msg = ' Query feil: ' mysql_error ( ) ( $ resultat ! ) . . "\\ n";
die ( $ msg )
}
6
Bruk PHP PDO_MYSQL utvidelse til å spørre databasen i stedet for standard " mysql_query " eller " mysqli " funksjoner . Den PDO_MYSQL forlengelse benytter MySQL har native forberedt uttalelse støtte, noe som kan bidra til fortgang dine spørsmål. Følgende kode er et eksempel på hvordan du sender en MySQL spørring med PDO_MYSQL forlengelse:
$ db_info = ' mysql : host = localhost , port = 3306 ; dbnavn = mindb ';
$ user = 'username ';
$ pass = ' passord ';
try {
$ db_handle = new PUD ( $ db_info , $ bruker , $ pass) ;
}
fangst ( PDOException $ unntak) {
printf ( "Feil: % s ", $ unntak - > GetMessage ( ) ) ;
}
$ db_handle - > setAttribute (PUD :: ATTR_ERRMODE , PUD :: ERRMODE_EXCEPTION ) ;
$ db_handle - > setAttribute (PUD :: ATTR_AUTOCOMMIT , false);
< p > $ sql = "SELECT * FROM MyTable ";
$ result_set = $ db_handle - > spørring ( $ sql ) ;
$ result_set - > setFetchMode (PUD :: FETCH_ASSOC ) ;
while ( $ row = $ result_set - > hente ( ) ) {
$ data = $ row [" mycolumn "] ;
}
< p > $ result_set - > closeCursor ();