2016-08-11 3 views
1

Я рассмотрел множество подобных вопросов, но я не могу найти ответ. Я хотел бы установить slow query log для моей базы данных MySQL. Я видел много ответов, говорящих, что я должен получить доступ к инструменту командной строки MySQL. Я не знаю точно, как найти этот инструмент, но я пытался к нему доступ, перейдя в:Включение медленного журнала запросов mysql с использованием XAMPP 5.6.21

C:/XAMPP/MySQL/бен/MySQL -u корень -p -h локальный

Но здесь я получаю MariaDB, который, похоже, отличается от любых других ответов/учебников, которые я видел раньше. Ввод:

set log_slow_queries = ON;

дает мне ошибку

ERROR 1193 (HY000): Unknown системной переменной 'log_slow_queries'

Любая помощь здесь высоко ценится.

ответ

2
SET GLOBAL slow_query_log=1; 

Журнал медленных запросов состоит из журнала событий для запросов, принимающих до long_query_time секунд, чтобы закончить. Например, до 10 секунд для завершения. Чтобы увидеть порог времени в данный момент установлен, выполните следующие действия:

SELECT @@long_query_time; 
+-------------------+ 
| @@long_query_time | 
+-------------------+ 
|   10.000000 | 
+-------------------+ 

Он может быть установлен как глобальная переменная, в my.cnf или my.ini файла. Или это может быть установлено связью, хотя это необычно. Значение может быть установлено в диапазоне от 0 до 10 (в секундах). Какую ценность использовать?

  • 10 настолько высок, чтобы быть почти бесполезным;
  • 2 - компромисс;
  • 0,5 и другие фракции возможны;
  • 0 захватывает все; это может залить диск опасно быстро, но может быть очень полезно.

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

SELECT @@slow_query_log; -- Is capture currently active? (1=On, 0=Off) 
SELECT @@slow_query_log_file; -- filename for capture. Resides in datadir 
SELECT @@datadir; -- to see current value of the location for capture file 

SET GLOBAL slow_query_log=0; -- Turn Off 
-- make a backup of the Slow Query Log capture file. Then delete it. 
SET GLOBAL slow_query_log=1; -- Turn it back On (new empty file is created) 

Для получения дополнительной информации, пожалуйста, смотрите в Руководстве по Page MySQL The Slow Query Log

Примечание: (?) Приведенная выше информация о включении/выключения slowlog было изменено в 5.6; у старой версии был другой механизм.

«Лучший» способ увидеть, что замедляет работу системы:

long_query_time=... 
turn on the slowlog 
run for a few hours 
turn off the slowlog (or raise the cutoff) 
run pt-query-digest to find the 'worst' couple of queries. Or mysqldumpslow -s t 
+0

Спасибо, но я до сих пор не знаю, как включить его. Если я попробую SELECT @@ slow_query_log; Я получаю значение 0, поэтому я знаю, что он выключен. – RGriffiths

+0

Я только что показал вам, как включить его, и дал ссылку на страницу Документов, на которой есть ссылки на страницу руководства.Он либо включается с 1, «ON» динамически, либо через файл 'ini' или' cnf' при перезагрузке сервера. – Drew

+1

Извинения. Получил это сейчас - спасибо миллион. – RGriffiths

Смежные вопросы