Egy kolléga a CleverCode-nál nemrégiben ajánlott egy SQL-alapú SQL-állítások elemzésére, a profilozásra, és azt találta, hogy ez az eszköz nagyon jó, pontosan képes elemezni, hogy mennyi időt töltenek a sql utasításokra a lekérdezési folyamat során. A CleverCode itt foglalja össze és megosztja veled.
1 Bevezetés
A MySQL Query Profiler egy nagyon kényelmes lekérdezésdiagnosztikai elemző eszköz, amelyen keresztül megkaphatod a lekérdezés teljes végrehajtási folyamatában több erőforrás fogyasztását, például CPU, IO, IPC, SWAP stb., valamint az PAGE FAULTS, CONTEXT SWITCHE stb. előfordulását, valamint a MySQL által meghívott függvények helyét a forrásfájlban a lekérdezés végrehajtása során.
A MySQL 5.0.37-es vagy újabb verzió támogatja a PROFILING hibakeresési funkciót, amely lehetővé teszi, hogy megértsd az SQL utasítások által felhasznált erőforrások részleteit. Mivel a rendszer getrusage() funkciójának hívása szükséges, csak Linux/Unix osztályú platformokon használható, nem Windowson. Ráadásul a PROFILING inkább folyamatok feldolgozására szolgál, nem szálakra, és a szerveren lévő más alkalmazások befolyásolhatják a hibakeresési eredményeket, ezért ez az eszköz alkalmas fejlesztés közbeni hibakeresésre, és ha termelési környezetben akarsz hibakeresést végezni, figyelj a korlátaira.
2 Működés
2.1 Ellenőrizd, hogy a profil engedélyezett-e, alapértelmezés szerint ki van kapcsolva.
2.2 Engedélyezze a profilozást. A változóprofilozás egy felhasználói változó, amelyet minden alkalommal újra be kell kapcsolni.
2.3 Hajtsd végre a következő utasításokat: Annak érdekében, hogy elkerüljük, hogy korábban az SQL a QCACHE-ben tárolja, ajánlott a SELECT utasítást arra kényszeríteni, hogy ne végezzen QCACHE detektálást SQL futtatása során. Ez lehetővé teszi, hogy az elemzés pontosságát nyújtsd be.
2.4 HasználatProfil lekérdezés megjelenítéseA legutóbbiA nyilatkozat végrehajtási adatai。 (Elemzés: sql_no_cache count(*) a system_user közül válasszuk, ahol az életkor > 20)
2.5 Műsorprofilok használata. Tekintse meg a szerveren végrehajtott utasítások listáját. (lekérdezési azonosító, töltött idő, kijelentés).
2.6 Használd a show profile funkciót a formulációazonosító végrehajtási adatainak lekérdezéséhez. Itt az ID 6-os állítást elemzzük. (Elemzés: sql_no_cache count(*) kiválasztása a system_user között, ahol az életkor > 20).
2.7 Szerezd meg a CPU-t és blokkold az IO-fogyasztást.
2.8 További információk beszerzése. a "SHOW PROFILE *** FOR QUERY n" (PROFIL MEGJELENÍTÉSE *** LEKÉRDEZÉSÉRT) megjelöléssel érhető el. Hivatkozási cím: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.
|