Hemsida » hur » Övervaka alla SQL-frågor i MySQL

    Övervaka alla SQL-frågor i MySQL

    Microsofts SQL Server har ett verktyg som heter Profiler som du kan använda för att övervaka varje SQL-fråga som träffar databasen. Detta är extremt användbart för programmerare och databashanterare för att felsöka de exakta frågorna som genereras av en applikation.

    Efter att ha bytt till MySQL ofta, var detta en av de första sakerna jag ville räkna ut hur man gör. Hur annars kan du se den faktiska SQL-koden genererad av WordPress eller phpBB?

    Det första vi behöver göra är att aktivera loggning av frågor i MySQL. Varnas att detta bara ska göras under utveckling ... det fördröjer verkligen saker för att logga in varje enskild fråga till en fil.

    Hitta och öppna din MySQL-konfigurationsfil, vanligtvis /etc/mysql/my.cnf på Ubuntu. Leta efter avsnittet som säger "Logging and Replication"

    #
    # * Logga och replikering
    #
    # Båda platsen roteras av cronjoben.
    # Var medveten om att den här loggstypen är en prestationsdödare.

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

    Bara uncomment "log" -variabeln för att aktivera loggning. Starta om MySQL med det här kommandot:

    sudo /etc/init.d/mysql omstart

    Nu är vi redo att börja övervaka frågorna när de kommer in. Öppna en ny terminal och kör det här kommandot för att bläddra i loggfilen, justera banan om det behövs.

    svans -f /var/log/mysql/mysql.log

    Nu kör din ansökan. Du ser databasfrågorna börjar flyga i ditt terminalfönster. (se till att du har bläddring och historik aktiverad på terminalen)

    Jag är imponerad, phpbb3 har ganska tätt, optimerad SQL-kod. WordPress är å andra sidan mycket ineffektivt.