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

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

26 голосов
/ 18 июня 2009

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

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

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

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

Ответы [ 5 ]

6 голосов
/ 18 июня 2009

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

3 голосов
/ 01 февраля 2013

Это сработало для меня в 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, закомментируйте эти строки кодов

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
1 голос
/ 18 июня 2009

Есть коммерческий продукт

http://www.webyog.com/en/

1 голос
/ 18 июня 2009

Вы можете просто проанализировать журнал запросов в режиме реального времени. Если вы используете Linux, вы можете использовать tail -f для просмотра журнала в реальном времени

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

http://hackmysql.com/mysqlsla

0 голосов
/ 18 июня 2009

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

...