/ / Overvåke alle SQL-spørsmål i MySQL

Overvåk alle SQL-spørringer i MySQL

Microsofts SQL Server har et verktøy som heter Profilersom du kan bruke til å overvåke alle SQL-spørsmål som treffer databasen. Dette er ekstremt nyttig for programmerere og databaseadministratorer for å feilsøke de nøyaktige spørringene som genereres av et program.

Etter å ha byttet til å bruke MySQL ofte, var dette en av de første tingene jeg ønsket å finne ut hvordan jeg skulle gjøre. Hvordan ellers kan du se den faktiske SQL-koden generert av WordPress eller phpBB?

Det første vi må gjøre er å slå på logging av spørsmål i MySQL. Vær advart om at dette bare skal gjøres under utvikling ... det bremser virkelig ting for å logge hvert eneste spørsmål til en fil.

Finn og åpne MySQL-konfigurasjonsfilen, vanligvis /etc/mysql/my.cnf på Ubuntu. Se etter seksjonen som sier “Logging and Replication”

#
# * Logging og replikering
#
# Begge stedene blir rotert av cronjob.
# Vær oppmerksom på at denne loggtypen er en ytelsesmorder.

logg = /var/log/mysql/mysql.log

Bare merk av "logg" -variabelen for å slå på logging. Start MySQL på nytt med denne kommandoen:

sudo /etc/init.d/mysql omstart

Nå er vi klare til å begynne å overvåke spørsmålene når de kommer inn. Åpne en ny terminal og kjør denne kommandoen for å bla i loggfilen, og justere banen om nødvendig.

hale -f /var/log/mysql/mysql.log

Kjør nå søknaden din. Du ser databasespørsmålene begynne å fly forbi i terminalvinduet. (sørg for at rulle og historie er aktivert på terminalen)

Jeg er imponert, phpbb3 har ganske stram, optimalisert SQL-kode. WordPress er derimot veldig ineffektivt.