Overvåk alle SQL-spørringer i MySQL
Microsofts SQL Server har et verktøy kalt Profiler som du kan bruke til å overvåke hvert SQL-spørring som treffer databasen. Dette er ekstremt nyttig for programmerere og databaseadministratorer for å feilsøke de eksakte spørringene som genereres av et program.
Etter å ha byttet til bruk av MySQL på hyppig basis, var dette en av de første tingene jeg ønsket å finne ut hvordan jeg skulle gjøre. Hvordan kan du ellers se den faktiske SQL-koden generert av WordPress eller phpBB?
Det første vi må gjøre er å slå på logg av søk i MySQL. Vær advart om at dette bare skal gjøres i utvikling ... det virkelig bremser ting ned for å logge hver enkelt spørring til en fil.
Finn og åpne MySQL-konfigurasjonsfilen, vanligvis /etc/mysql/my.cnf på Ubuntu. Se etter delen som sier "Logging and Replication"
#
# * Logging og replikering
#
# Begge plassering blir rotert av cronjob.
# Vær oppmerksom på at denne logg typen er en ytelse morder.logg = /var/log/mysql/mysql.log
Bare uncomment "loggen" variabelen for å slå på logging. Start MySQL på nytt med denne kommandoen:
sudo /etc/init.d/mysql restart
Nå er vi klare til å begynne å overvåke spørringene når de kommer inn. Åpne en ny terminal og kjør denne kommandoen for å bla loggfilen, juster banen hvis nødvendig.
hale -f /var/log/mysql/mysql.log
Kjør nå din søknad. Du vil se databasespørsmålene begynne å flyr i ditt terminalvindu. (sørg for at du har rulling og historikk aktivert på terminalen)
Jeg er imponert, phpbb3 har ganske tett, optimalisert SQL-kode. WordPress, derimot, er svært ineffektiv.