Skip to main content

Overvåk alle SQL-spørringer i MySQL

Overvåk alle SQL-spørringer i MySQL

Geoffrey Carr

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 av 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 utviklingen ... det bremser virkelig ting ned for å logge hvert enkelt spørsmål til en fil.

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

## * Logging and Replication## Both location gets rotated by the cronjob.# Be aware that this log type is a performance killer.

log = /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.

tail -f /var/log/mysql/mysql.log

Kjør nå din søknad. Du ser databasespørsmålene begynner å 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.

Link
Plus
Send
Send
Pin