Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Môj dotaz je rýchly v MySQL a Slow v PHP

Zlepšenie časy MySQL dotazu v PHP skripte zvyšuje rýchlosť prehliadanie a zabraňuje skriptu oddychové časy výskytu . PHP je skriptovací jazyk s funkciami , ktoré vám pomôžu vytvárať dynamické webové stránky . MySQL je relačný databázový systém , ktorý umožňuje viac užívateľom prístup k databázam na serveri . Zistiť príčinu pomalých dotazov sa " vysvetliť " vyhlásenie , ktoré umožňujú pomalé protokolu dotazu a časovanie vaše otázky vtip funkciu " microtime " . Pomocou rozšírenia PDO MySQL a upgradu PHP a MySQL verzie môžu tiež prispieť k urýchleniu dotazov . Pokyny dovolená 1

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 ( ) ;

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené