Een collega bij CleverCode raadde onlangs een tool aan voor het analyseren van SQL-statements in MySQL, profilering, en ontdekte dat deze tool erg goed is, omdat het nauwkeurig kan analyseren waar de specifieke tijd aan SQL-statements wordt besteed tijdens het queryproces. CleverCode vat het hier samen en deelt het met je.
1 Inleiding
MySQL's Query Profiler is een zeer handig diagnostisch analysetool voor querys, waarmee je het verbruik van meerdere bronnen in het hele uitvoeringsproces van een query kunt verkrijgen, zoals CPU, IO, IPC, SWAP, enz., evenals het optreden van PAGE FAULTS, CONTEXT SWITCHE, enz., en ook de locatie kunt krijgen van elke functie die door MySQL wordt aangeroepen in het bronbestand tijdens de uitvoering van de query.
MySQL versie 5.0.37 of later ondersteunt de PROFILING debuggingfunctie, waarmee je de details van de middelen die door SQL-statements worden verbruikt kunt begrijpen. Omdat het vereist dat de getrusage()-functie van het systeem wordt aangeroepen, kan het alleen worden gebruikt op Linux/Unix-klassen platforms, niet op Windows. Bovendien is PROFILING bedoeld voor het verwerken van processen in plaats van threads, en andere applicaties op de server kunnen je debuggingresultaten beïnvloeden, dus deze tool is geschikt voor debugging tijdens ontwikkeling, en als je wilt debuggen in een productieomgeving, moet je letten op de beperkingen ervan.
2 Werking
2.1 Controleer of het profiel is ingeschakeld, het is standaard uitgeschakeld.
2.2 Profilering inschakelen. Variabeleprofilering is een gebruikersvariabele die elke keer opnieuw moet worden ingeschakeld.
2.3 Voer de volgende instructies uit: Om te voorkomen dat SQL eerder in QCACHE is opgeslagen, wordt aanbevolen om de SELECT-instructie te dwingen geen QCACHE-detectie uit te voeren bij het uitvoeren van SQL. Dit stelt je in staat om de nauwkeurigheid van de analyse in te dienen.
2.4 GebruikProfiel weergevenDe meest recenteUitvoeringsinformatie van de verklaring。 (Analyse: selecteer sql_no_cache telling(*) uit system_user waar leeftijd > 20 jaar oud is)
2.5 Gebruik van showprofielen. Bekijk een lijst van statements die op de server worden uitgevoerd. (query-ID, tijd besteed, statement).
2.6 Gebruik het showprofiel om de uitvoeringsinformatie van de formulerings-ID op te vragen. Hier analyseren we de verklaring met ID 6. (Analyse: selecteer sql_no_cache telling(*) uit system_user waarbij leeftijd > 20 jaar).
2.7 Verbruik van CPU en Block IO.
2.8 Aanvullende informatie verkrijgen. kan worden verkregen door "SHOW PROFILE *** FOR QUERY n" uit te voeren. Referentieadres: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.
|