En kollega hos CleverCode anbefalte nylig et verktøy for å analysere SQL-setninger i MySQL, profilering, og fant ut at dette verktøyet er veldig bra, som nøyaktig kan analysere hvor den spesifikke tiden ble brukt på SQL-setninger under spørringsprosessen. CleverCode oppsummerer det her og deler det med deg.
1 Innledning
MySQLS Query Profiler er et svært praktisk verktøy for diagnostisk analyse av spørringer, hvor du kan hente ut forbruket av flere ressurser i hele kjøringsprosessen av en spørring, som CPU, IO, IPC, SWAP osv., samt forekomst av PAGE FAULTS, CONTEXT SWITCHE osv., og også hente plasseringen av hver funksjon som er kalt av MySQL i kildefilen under kjøringen av spørringen.
MySQL versjon 5.0.37 eller nyere støtter PROFILING-feilsøkingsfunksjonen, som lar deg forstå detaljene i ressursene som brukes av SQL-setninger. Fordi det krever å kalle systemets getrusage()-funksjon, kan det kun brukes på Linux/Unix-plattformer, ikke Windows. Dessuten er PROFILING for prosesseringsprosesser snarere enn tråder, og andre applikasjoner på serveren kan påvirke feilsøkingsresultatene dine, så dette verktøyet egner seg for feilsøking under utvikling, og hvis du ønsker å feilsøke i et produksjonsmiljø, bør du være oppmerksom på begrensningene.
2 Drift
2.1 Sjekk om profilen er aktivert, den er slått av som standard.
2.2 Aktiver profilering. Variabelprofilering er en brukervariabel som må aktiveres på nytt hver gang.
2.3 Utfør følgende setninger: For å unngå tidligere lagring av SQL i QCACHE, anbefales det å tvinge SELECT-setningen til ikke å utføre QCACHE-deteksjon når SQL kjøres. Dette gjør at du kan sende inn nøyaktigheten av analysen.
2.4 BrukVis profilspørringDen nyesteUtførelsesinformasjon for setningen。 (Analyse: velg sql_no_cache tell(*) fra system_user hvor alder > 20)
2.5 Bruk av vise profiler. Se en liste over setninger som kjøres på serveren. (spørrings-ID, tid brukt tid, setning).
2.6 Bruk vis profil for å spørre i utførelsesinformasjonen til formulerings-ID-en. Her analyserer vi uttalelsen med ID 6. (Analyse: velg sql_no_cache teller(*) fra system_user hvor alder > 20 år).
2.7 Få CPU og blokker IO-forbruk.
2.8 Innhenting av tilleggsinformasjon. kan oppnås ved å utføre "VIS PROFIL *** FOR QUERY n". Referanseadresse: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.
|