GoDaddy Довідка

Ми спробували якнайкраще перекласти цю статтю. Також доступна версія англійською мовою.

Переглядайте повільні запити MySQL

Ви ввімкнули повільне реєстрацію запитів і тепер має журнал для перегляду. Якщо ви не ввімкнули ведення журналу, ви можете знайти кроки тут .

Аналіз журналу

Розташування журналу:
/var/log/slow-queries.log
ПРИМІТКА. Якщо ви не знайдете журнал у цьому розташуванні, перевірте запис у файлі my.cnf та перезапустіть MySQL після внесення змін.
Формат:
# Time: 210905 6:33:11 # User @ Host: dbuser [dbname] @ hostname [1.2.3.4] # Query_time: 12.116250 Lock_time: 0.000035 Rows_sent: 0 Rows_examined: 201565 use dbname; МЕТКА часу SET = 1409898791; ... ПОВІЛЬНІ ЗАПИТИ ТУТ ...

Журнал може бути величезним, якщо ви маєте десятки, якщо не сотні записів у наведеному вище форматі. Щоб зробити журнал зручнішим для читання, використовуйте mysqldumpslow для аналізу журналу.

mysqldumpslow -r -a /var/log/mysql/mysqld.slow.log
Результат буде містити важливу інформацію, таку як час , рядки та запит .
Count: 2 Time = 20.54s (41s) Lock = 0.02s (0s) Rows = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' ORDER BY site_id DESC LIMIT 0,2 Count: 1 Time = 21.74s (21s) Lock = 0.01s (0s) Rows = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' ORDER BY site_id DESC LIMIT 0,2 Count: 1 Time = 23,86 с (23 с) Блокування = 0,20 с (0 с) Рядки = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' ORDER BY site_id DESC LIMIT 0,2

Розглядаючи приклад вище, ми маємо 1 запит, на виконання якого потрібно 20-24 секунди. Це може спричинити проблеми з вашим сайтом: від повільного завантаження до помилок тайм-ауту (нескінченного віджиму). Запит перевіряє 12 547 802 рядків. Великий запит (наприклад, select *), який виконується в таблиці з понад 12 мільйонами рядків, може призвести до поганої взаємодії з користувачем. Оптимізація запиту (наприклад, вибір «журнальних столиків») або зменшення кількості рядків (тобто архівування старих даних) прискорить запит.

Якщо файл журналу великий, запустіть mysqldumpslow і збережіть вихідні дані у файлі. Це полегшить перегляд за допомогою інших засобів обробки файлів, таких як grep або find .

mysqldumpslow -r -a /var/log/slow-queries.log > slow.log.parsed

Наступні кроки

Перевіривши журнал повільних запитів, ви повинні добре уявити проблемні запити, які потрібно виправити. Якщо ваш сайт все ще працює повільно з використанням MySQL з використанням великих ресурсів, можливо, доведеться оптимізувати MySQL , щоб краще використовувати ресурси вашого сервера.

Закінчивши роботу з журналом, вимкніть повільне реєстрацію запитів MySQL . Якщо ввімкнути ведення журналу, це призведе до непотрібних витрат ресурсів MySQL та потенційного заповнення вашого диска (із поганими запитами).

Послуги хостингу GoDaddy

Наші спеціалісти з серверів можуть увімкнути або вимкнути повільне реєстрацію запитів MySQL та оптимізувати MySQL. Щоб дізнатися більше про цю послугу, довідник GoDaddy тут допоможе.

Додаткові відомості

Докладніше про послуги хостингу, які пропонує GoDaddy, див. У статтіМеню послуг хостингу .