Kolega pri CleverCode mi je pred kratkim priporočil orodje za analizo SQL stavkov v MySQL, profiliranje, in ugotovil, da je to orodje zelo dobro, saj lahko natančno analizira, kje je točen čas, porabljen za SQL stavke med poizvedbo. CleverCode to tukaj povzema in deli z vami.
1 Uvod
MySQL Query Profiler je zelo priročno orodje za diagnostično analizo poizvedb, s katerim lahko pridobite porabo več virov v celotnem procesu izvajanja poizvedbe, kot so CPU, IO, IPC, SWAP itd., pa tudi pojav napak strani, preklapljanja konteksta itd., ter prav tako pridobite lokacijo vsake funkcije, ki jo MySQL kliče, v izvorni datoteki med izvajanjem poizvedbe.
MySQL različica 5.0.37 ali novejša podpira funkcijo razhroščevanja PROFILING, ki vam omogoča razumevanje podrobnosti virov, ki jih porabijo SQL stavki. Ker zahteva klic funkcije getrusage() sistema, jo je mogoče uporabljati le na platformah razreda Linux/Unix, ne pa na Windows. Poleg tega je PROFILIRANJE namenjeno obdelavi procesov in ne niti, druge aplikacije na strežniku pa lahko vplivajo na rezultate odpravljanja napak, zato je to orodje primerno za odpravljanje napak med razvojem, in če želite odpravljati napake v produkcijskem okolju, morate biti pozorni na njegove omejitve.
2 Obratovanje
2.1 Preveri, če je profil omogočen, je privzeto izklopljen.
2.2 Omogočite profiliranje. Profiliranje spremenljivk je uporabniška spremenljivka, ki jo je treba vsakič ponovno omogočiti.
2.3 Izvedite naslednje stavke: Da bi se izognili predhodnemu shranjevanju SQL v QCACHE, je priporočljivo, da se ukaz SELECT pri izvajanju SQL ne izvaja zaznavanja QCACHE. To vam omogoča, da oddate natančnost analize.
2.4 UporabaPokaži poizvedbo profilaNajnovejšiInformacije o izvršitvi izjave。 (Analiza: izberi sql_no_cache štetje(*) iz system_user, kjer je starost > 20 let)
2.5 Uporaba serijskih profilov. Oglejte si seznam stavkov, ki se izvajajo na strežniku. (ID poizvedbe, porabljeni čas, izjava).
2.6 Uporabite show profile za poizvedbo po informacijah o izvajanju ID-ja formulacije. Tukaj analiziramo izjavo z ID 6. (Analiza: izberi sql_no_cache štetje(*) iz system_user, kjer je starost > 20 let).
2.7 Pridobi CPU in blokiraj porabo vhodnih operacij.
2.8 Pridobivanje dodatnih informacij. je mogoče pridobiti z izvedbo "PRIKAŽI PROFIL *** ZA POIZVEDBO n". Referenčni naslov: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.
|