Un coleg de la CleverCode a recomandat recent un instrument pentru analiza instrucțiunilor sql în MySQL, profilare, și a constatat că acest instrument este foarte bun, care poate analiza cu acuratețe timpul specific petrecut pe instrucțiunile SQL în timpul procesului de interogare. CleverCode o rezumă aici și o împărtășește cu tine.
1 Introducere
Query Profiler-ul MySQL este un instrument foarte convenabil de analiză de diagnostic al interogărilor, prin care poți obține consumul mai multor resurse în întregul proces de execuție al unei interogări, cum ar fi CPU, IO, IPC, SWAP etc., precum și apariția PAGE FAULTS, CONTEXT SWITCHE etc., și poți obține de asemenea locația fiecărei funcții apelate de MySQL în fișierul sursă în timpul execuției interogării.
MySQL versiunea 5.0.37 sau ulterioară suportă funcția de depanare PROFILING, care îți permite să înțelegi detaliile resurselor consumate de instrucțiunile SQL. Pentru că necesită apelarea funcției getrusage() a sistemului, poate fi folosită doar pe platformele de clasă Linux/Unix, nu pe Windows. Mai mult, PROFILAREA este pentru procesarea proceselor, nu firele de execuție, iar alte aplicații de pe server pot afecta rezultatele depanării, astfel că acest instrument este potrivit pentru depanare în timpul dezvoltării, iar dacă doriți să depanați într-un mediu de producție, ar trebui să fiți atenți la limitările sale.
2 Funcționare
2.1 Verifică dacă profilul este activat, este dezactivat implicit.
2.2 Activează profilarea. Profilarea variabilelor este o variabilă de utilizator care trebuie reactivată de fiecare dată.
2.3 Executați următoarele instrucțiuni: Pentru a evita stocarea anterioară a SQL în QCACHE, se recomandă forțarea instrucțiunii SELECT să nu efectueze detectarea QCACHE atunci când se execută SQL. Acest lucru îți permite să trimiți acuratețea analizei.
2.4 UtilizareInterogare profil de afișareCel mai recentInformații de execuție ale enunțului。 (Analiză: selectați sql_no_cache număr(*) din system_user unde vârsta > 20 de ani)
2.5 Folosirea profilurilor de emisiune. Consultați o listă a instrucțiunilor care sunt executate pe server. (ID-ul interogării, timpul petrecut, instrucțiunea).
2.6 Folosiți profilul de afișare pentru a interoga informațiile de execuție ale ID-ului formulării. Aici analizăm afirmația cu ID 6. (Analiză: selectați sql_no_cache număr(*) din system_user unde vârsta > 20 de ani).
2.7 Obține CPU și blochează consumul de IO.
2.8 Obținerea de informații suplimentare. poate fi obținut prin efectuarea "AFIȘEAZĂ PROFILUL *** PENTRU INTEROGARE n". Adresă de referință: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.
|