Подтвердить что ты не робот

Как профилировать MySQL

Как профилировать базу данных MySQL. Я хочу видеть, что все SQL, выполняемые с базой данных.

Я знаю, что вы можете это сделать:

  • set profiling=1;
  • Запустите медленный запрос (например, SELECT * FROM messages WHERE fromaddress='xxx';
  • SHOW PROFILES;

Но это, похоже, применимо только к запуску файла в командной строке, я хочу увидеть результаты запуска веб-сайта.

4b9b3361

Ответ 1

Вы хотите, чтобы журнал запросов , но, очевидно, сделать это на тяжелом сервере можно было бы... неразумно.

Ответ 2

Это работало для меня на Ubuntu.

Найдите и откройте файл конфигурации MySQL, обычно /etc/mysql/my.cnf на Ubuntu. Найдите раздел, в котором говорится "Регистрация и репликация"

# * 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

или в более новых версиях mysql, комментируйте OUT эти строки кодов

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1
log_error                = /var/log/mysql/error.log

Просто раскомментируйте переменную log, чтобы включить ведение журнала. Перезапустите MySQL с помощью этой команды:

sudo /etc/init.d/mysql restart

Теперь были готовы начать мониторинг запросов по мере их поступления. Откройте новый терминал и запустите эту команду, чтобы прокрутить файл журнала, при необходимости отрегулировав путь.

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

Ответ 3

Вы можете просто проанализировать журнал запросов в реальном времени. Если в linux вы можете использовать tail -f, чтобы просмотреть журнал в реальном времени

Кроме того, вы можете попробовать свободное программное обеспечение от этих ребят:

http://hackmysql.com/mysqlsla

Ответ 5

MySqlAdministrator имеет некоторые полезные функции сборки (включая просмотр журналов), но для журналов он должен запускаться на том же компьютере, что и база данных