Одним із головних чинників ефективності виконання MySQL запитів є час його виконання. Налагодження запитів MySQL є справою не з рідкісних, і добре б мати під рукою зручний інструмент, який би дозволив оцінити час виконання запиту.
В MySQL, починаючи з версії 5.0.37 є з’явився вбудований механізм — profiling, який дозволяє оцінити час виконання того чи іншого запиту.

Розглянемо приклад його використання:

mysql> set profiling=1;
mysql> select count(*) from comment;
mysql> select count(*) from message;
mysql> show profiles;

Як результат отримуємо дані в такому вигляді:

+———-+————+——————————+
| Query_ID | Duration | Query |
+———-+————+——————————+
| 1 | 0.00012700 | select count(*) from comment |
| 2 | 0.00014200 | select count(*) from message |
+———-+————+——————————+
2 rows in set (0.00 sec)

Команда show profiles за замовчуванням показує результати 15 запитів, цифру можна збільшити, задавши параметр profiling_history_size:

mysql> set profiling=1;
mysql> set profiling_history_size=100;

Цей метод так само гарний тим, що якщо міряти час виконання запиту з самого коду додатка, то такі фактори, як коннект до сервера MySQL теж може віднімати якийсь час, що в підсумку може призвести до неточних цифр. У випадку ж з профілюванням, ви переглядаєте час виконання самого запиту. Крім цього можна переглянути детальну інформацію, на що витрачався час виконання запиту:

mysql> show profile for query 1;
+——————————–+———-+
| Status | Duration |
+——————————–+———-+
| starting | 0.000015 |
| checking query cache for query | 0.000021 |
| checking permissions | 0.000003 |
| Opening tables | 0.000007 |
| System lock | 0.000004 |
| Table lock | 0.000023 |
| init | 0.000005 |
| optimizing | 0.000005 |
| executing | 0.000025 |
| end | 0.000003 |
| end | 0.000001 |
| query end | 0.000002 |
| storing result in query cache | 0.000003 |
| freeing items | 0.000003 |
| closing tables | 0.000004 |
| logging slow query | 0.000002 |
| cleaning up | 0.000001 |
+——————————–+———-+
17 rows in set (0.00 sec)

Досить зручний інструмент, який можна використовувати для оптимізації MySQL запитів.
Дізнайтеся більше про можливості використання в офіційній документації — SHOW PROFILE Syntax.

Додав: htmaker, 20.07.2015 р.
(1 голосів, середній: 5,00 з 5)

Завантаження…

Діліться з друзями:

См. також:


Змінюємо пароль root в MySQL 5.7
Рубрика: Linux, MySQL

Виправлення помилок у базі MySQL
Рубрика: MySQL

Відновлення пароля root в MySQL
Рубрика: MySQL

Утиліта Mytop для MySQL
Рубрика: Linux, MySQL

Кількість запитів до MySQL в режимі реального часу
Рубрика: MySQL

Оптимізація MySQL (просто про складному)
Рубрика: MySQL

Повнотекстовий індекс: Full text index
Рубрика: MySQL

Вставлення стовпців: ALTER TABLE ADD
Рубрика: MySQL

Відновлення таблиць MyISAM після збою
Рубрика: Linux, MySQL