En kollega hos CleverCode anbefalede for nylig et værktøj til analyse af SQL-sætninger i MySQL, profilering, og fandt ud af, at dette værktøj er meget godt, da det præcist kan analysere, hvor den specifikke tid der blev brugt på SQL-udsagn under forespørgselsprocessen. CleverCode opsummerer det her og deler det med dig.
1 Introduktion
MySQLS Query Profiler er et meget praktisk analyseværktøj til forespørgselsdiagnostik, hvorigennem du kan opnå forbruget af flere ressourcer i hele udførelsesprocessen af en forespørgsel, såsom CPU, IO, IPC, SWAP osv., samt forekomsten af PAGE FAULTS, CONTEXT SWITCHING osv., og også få placeringen af hver funktion, som MySQL kalder i kildefilen under udførelsen af forespørgslen.
MySQL version 5.0.37 eller senere understøtter PROFILING-fejlsøgningsfunktionen, som gør det muligt at forstå detaljerne i de ressourcer, der forbruges af SQL-sætninger. Fordi det kræver, at systemets getrusage()-funktion kaldes, kan den kun bruges på Linux/Unix-klasseplatforme, ikke Windows. Desuden er PROFILING til behandling af processer frem for tråde, og andre applikationer på serveren kan påvirke dine fejlsøgningsresultater, så dette værktøj er velegnet til fejlfinding under udvikling, og hvis du vil fejlfinde i et produktionsmiljø, bør du være opmærksom på dets begrænsninger.
2 Drift
2.1 Tjek om profilen er aktiveret, den er slået fra som standard.
2.2 Aktiver profilering. Variabelprofilering er en brugervariabel, der skal genaktiveres hver gang.
2.3 Udfør følgende udsagn: For at undgå tidligere at have lagret SQL i QCACHE, anbefales det at tvinge SELECT-sætningen til ikke at udføre QCACHE-detektion ved SQL-kørsel. Dette giver dig mulighed for at indsende nøjagtigheden af analysen.
2.4 AnvendelseForespørgsel på vis profilDen senesteUdførelsesinformation for udsagnet。 (Analyse: vælg sql_no_cache tælling(*) fra system_user hvor alder > 20)
2.5 Brug af vise profiler. Se en liste over sætninger, der udføres på serveren. (forespørgsels-id, tid brugt, sætning).
2.6 Brug vis profil til at forespørge udførelsesinformationen for formulerings-ID'et. Her analyserer vi erklæringen med ID 6. (Analyse: vælg sql_no_cache tælling(*) fra system_user hvor alder > 20 år).
2.7 Få CPU- og blok-IO-forbrug.
2.8 Indhentning af yderligere information. kan opnås ved at udføre "VIS PROFIL *** FOR FORESPØRGSEL n". Referenceadresse: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.
|