О web-разработке
и даже немного больше...

Включаем логирование в MySQL

Быстродействие базы данных в проектах играет немаловажную роль, оптимальные запросы к БД пожалуй являются ключом к успешной реализации взаимодействия с данными. Тенденция универсальных движков, фреймворков, и т.д. намного облегчает разработку проектов, однако зачастую существует и другая сторона медали. Избыточное использование различных API для фреймворка обворачивается большими запросами к базе данных, которая при большом количестве выстраивает эти запросы в очередь, а очередь в свою очередь (как и в жизни:)) отнимает время. Однозначно запросы можно всячески кэшировать, но перед этим хорошо бы разобраться с ними в корне. В данной статье мы говорим о конкретной СУБД – MySQL, в виду её распространённости использования в качестве базы данных для различных интернет-проектов.
Итак, допустим, есть необходимость сделать мониторинг запросов в базу данных, для этого существуют множество инструментов. Однако есть возможность сделать лог SQL запросов стандартными средствами сервера MySQL. Для этого в конфигурационном файле MySQL необходимо дописать несколько строчек (по умолчанию скорее всего их там нет). Как правило это следует делать на локальной машине, т.к. на боевом сервере в лог-файле получиться полный бардак, да и размер его получиться великоват.

Находим конфигурационный файл MySQL сервера, в моём случает это /etc/my.cf, дописываем в него следующие строки,
для Unix систем:

# общий лог
log=/var/mysql-logs/mysql-queries.log

# ошибки
log-error=/var/mysql-logs/mysql-errors.log

# сложные запросы
log-slow-queries=/var/mysql-logs/mysql-slow-queries.log

таким же образом для Windows систем:

log = C:/mysql-logs/mysql-log.log
log-error = C:/mysql-logs/mysql-errors.log
log-slow-queries = C:/mysql-logs/mysql-slow-queries.log

При этом следует предварительно создать каталог (в нашем примере это /mysql-logs) по указанному пути, задать права на запись. Параметры указанные в конфигурационном файле вступают в силу после перезапуска сервера MySQL.
В документации MySQL на оф. сайте так же есть материал об этом — The General Query Log

Опубликован: 16.11.2013 г.

См. также:

Как подсчитать количество записей по месяцам в MySQL?
Работа с базой данных в WordPress
SQL-запросы для смены домена в WordPress
Как изменить тип таблиц в MySQL?
Изменение кодировки таблиц в базе MySQL
Фильтрация по полю DateTime в MySQL
Меняем пароль root в MySQL 5.7
Исправление ошибок в базе MySQL

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта