2009-06-18 3 views
25

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

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

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

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

+1

Очевидно, ничто не мешает вам запускать эти запросы на веб-сайте. Я предполагаю, что вы запрашиваете метод, который не подразумевает изменений в коде приложения. –

+0

["'SHOW PROFILES' устарел и будет удален в будущем выпуске. Вместо этого используйте Performance Schema."] (Http://dev.mysql.com/doc/refman/5.7/en/show-profiles.html) – bishop

ответ

6

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

1

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

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

http://hackmysql.com/mysqlsla

0

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

3

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

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

# * 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 
Смежные вопросы