クエリパフォーマンスの分析
クエリパフォーマンスを向上させるためにサーバー変数のチューニングが行われます。詳細な分析は複雑ですが、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;