Анализ производительности запросов
Настройка переменных сервера выполняется для улучшения производительности запросов. Хотя глубокий анализ является сложным, вы можете использовать встроенный профилировщик запросов MySQL для получения базовой оценки времени выполнения запроса. На этом шаге вы создадите тестовую таблицу, вставите данные и проанализируете простой запрос.
Сначала подключитесь к серверу MySQL.
sudo mysql -u root
Создайте новую базу данных с именем testdb и переключитесь на нее.
CREATE DATABASE IF NOT EXISTS testdb;
USE testdb;
Далее создайте таблицу с именем employees для хранения образцов данных.
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
department VARCHAR(50),
salary INT
);
Вставьте несколько записей в таблицу employees.
INSERT INTO employees (name, department, salary) VALUES
('Alice', 'Sales', 60000),
('Bob', 'Engineering', 80000),
('Charlie', 'Sales', 65000),
('David', 'Marketing', 55000);
Теперь включите профилировщик запросов для вашей сессии. Это позволит записывать данные о производительности для последующих запросов.
SET profiling = 1;
Выполните запрос, который вы хотите проанализировать. Например, найдем всех сотрудников из отдела 'Sales'.
SELECT * FROM employees WHERE department = 'Sales';
Чтобы увидеть результаты производительности, используйте команду SHOW PROFILES. Она выводит список запросов, выполненных вами с момента включения профилирования, и их длительность.
SHOW PROFILES;
Вывод будет похож на этот, показывая длительность каждого запроса в секундах.
+----------+------------+-------------------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+-------------------------------------------------------+
| 1 | 0.00038500 | SELECT * FROM employees WHERE department = 'Sales' |
+----------+------------+-------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)
Этот столбец Duration дает вам базовый показатель производительности запроса. В реальных сценариях вы будете использовать этот инструмент для сравнения скорости запросов до и после изменений конфигурации на гораздо больших наборах данных.
Вы успешно использовали профилировщик для анализа запроса. Теперь вы можете выйти из оболочки MySQL.
exit;