Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Aktualizujte PHP a MySQL na najnovšiu verziu z ich webových stránok . Staršie verzie niekedy v rozpore sa navzájom , zatiaľ čo novšie verzie majú opravy chýb a je väčšia pravdepodobnosť , že sa navzájom kompatibilné .
2
Otvorte súbor " my.cnf " MySQL v textovom editore , ako je napríklad Windows Poznámkový blok . Vyhľadajte a nastavte " log_slow_queries " na " ON " , namiesto " OFF " . Nastavte " long_query_time " na malý počet , ako je " 1 " a poznačte si " log- slow - otázky " adresár. Aktualizuj svoje služby MySQL . " Mysql - slow.log " sa teraz zobrazí , ktorý sa pýta trvať dlhú dobu na realizáciu . To vám pomôže určiť , ako často sa vaša otázka je vykonávanie pomaly .
3
Umiestnite vyhlásenie " vysvetlenie " v dotaze pred " SELECT " vyhlásenie na načítanie informácií z optimalizátor o tom , ako vaše dotaz bude popravený . Výsledný výstup môže odhaliť príčinu vášho pomalého dotazu , ako je napríklad chýbajúci index
4
Time vaše PHP dotaz s funkciou " microtime " pridaním nasledujúceho kódu , kde sa nachádza váš dotaz : .
$ time_beg = microtime ( true ) ;
//umiestniť váš dotaz tu
$ time_end = microtime ( true ) ;
$ time_res = $ time_end - $ TIME_START ;
echo "dotaz vzal $ time_res sekúnd " ;
To pomáha potvrdiť , že dotaz je pomalý časť a nie nejaké iné časti svojho kódu . Spustiť kód niekoľkokrát , kým nebudete mať konzistentné čas . Porovnajte túto hodnotu času , keď urobíte akékoľvek budúce zmeny časovania
5
Skontrolujte prípadné chyby s funkciou " mysql_error " pridaním nasledujúceho kódu , kde sa nachádza váš dotaz : .
$ result = mysql_query ( $ query ) ;
if ( $ result ! ) {
$ msg = ' Chyba dotazu : " . mysql_error ( ) . " \\ N " ;
zomrieť ( $ msg )
}
6
pomocou rozšírenia PHP pdo_mysql dotaz databázy namiesto štandardného " mysql_query " alebo " mysqli " funkcie . Rozšírenie pdo_mysql využíva natívnu pripravenú podporu vyhlásenia MySQL , ktoré môžu pomôcť urýchliť vaše otázky . Nasledujúci kód je príkladom toho , ako odoslať dotaz MySQL s príponou pdo_mysql :
$ db_info = ' mysql : host = localhost ; port = 3306 ; dbname = mydb ' ;
$ user = ' užívateľské meno ' ;
$ pass = ' heslo ' ;
try {
$ db_handle = new PDO ( $ db_info , $ user , $ pass ) ;
}
catch ( PDOException $ výnimka ) {
printf ( " Chyba: % s " , $ výnimka - > 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 ( ) ) {
$ data = $ row [ " mycolumn " ] ;
}
$ result_set - > closeCursor ( ) ;