Логгирование всех запросов mysql

Для анализа нагрузки на mysql в одном из проектов потребовалось собрать все SQL запросы, которые выполнил сервер за определенный промежуток времени.

В этом деле нам может помочь binary log, но он не содержит select запросов. Чтобы собрать именно все запросы в файл нам помогут две заветные строчки в my.cnf:
general_log = 1
general_log_file = /var/log/mysql/all-query.log

Прелесть этого лог файла, в отличии от log=, в том, что он содержит и время выполнения запроса.
На выходе мы получаем в одном файле всю активность mysql, а дальше парсер в руки и вперед:)

p.s. стоит не забыть про ротацию логов, так как на при хорошей посещаемости этот файл может стремительно набирать в размере.

Leave a Reply