Performance Schemaでリアルタイムにクエリ情報を閲覧する
MySQLのライブクエリを閲覧する方法
MySQLコマンドラインツールは、MySQLサーバーに直接接続してクエリを実行できるツールです。 ライブクエリを閲覧するには、SHOW PROCESSLIST
コマンドを使用します。
mysql -u root -p
SHOW PROCESSLIST;
このコマンドは、実行中のすべてのクエリとその詳細情報を表示します。 詳細情報には、クエリテキスト、実行時間、接続ユーザーなどが含まれます。
利点:
- シンプルで使いやすい
- 詳細な情報を表示できる
- コマンドライン操作に慣れていないと使いにくい
- リアルタイムでクエリを更新できない
MySQL Workbenchは、MySQLデータベースを管理するためのGUIツールです。 ライブクエリを閲覧するには、Query Editor
タブを使用します。
Query Editor
タブを開きます。- 左上の接続ドロップダウンリストから、接続したいデータベースを選択します。
- 右上の
Execute
ボタンをクリックします。
- GUI操作で使いやすい
- MySQL Workbenchをインストールする必要がある
第三者製ツール
MySQLのライブクエリを閲覧できる第三者製ツールもいくつかあります。 これらのツールは、MySQL Workbenchのような機能に加えて、追加機能を提供しているものもあります。
- さまざまな機能を提供している
- 有料のツールが多い
MySQLサーバーログには、実行されたすべてのクエリが記録されています。 ライブクエリを閲覧するには、tail
コマンドを使用します。
tail -f /var/log/mysql/mysql.log
このコマンドは、MySQLサーバーログの最後の部分をリアルタイムで表示します。
- すべてのクエリを記録できる
- ログファイルが大きくなると、閲覧が困難になる
MySQLのライブクエリを閲覧するには、いくつかの方法があります。 それぞれ異なる利点と欠点があり、状況に応じて最適な方法を選ぶ必要があります。
MySQLコマンドラインツール
mysql -u root -p
SHOW PROCESSLIST;
MySQL Workbench
- MySQL Workbenchを起動します。
- 以下のクエリを実行します。
SHOW PROCESSLIST;
第三者製ツール
MySQLサーバーログ
tail -f /var/log/mysql/mysql.log
注意事項
- 上記のサンプルコードは、MySQL 8.0を想定しています。
- 使用する環境によっては、コマンドやクエリの syntax が異なる場合があります。
- MySQLのライブクエリを閲覧する方法は他にもあります。
MySQLのライブクエリを閲覧するその他の方法
EXPLAINコマンド
EXPLAIN <クエリ>;
例えば、以下のクエリを実行すると、products
テーブルからすべての行を選択するクエリの実行計画が表示されます。
EXPLAIN SELECT * FROM products;
Profiler
MySQL Profilerは、MySQLサーバーのパフォーマンスを分析するためのツールです。 Profilerを使用すると、実行されたすべてのクエリとその詳細情報を収集できます。
mysql --profile=cpu -u root -p
Profilerを有効にすると、MySQLサーバーはperformance_schema
データベースに情報を記録します。 収集された情報は、pt-query-digest
などのツールを使用して分析できます。
Performance Schemaは、MySQLサーバーのパフォーマンスに関する情報を収集するためのフレームワークです。 Performance Schemaを使用すると、実行されたすべてのクエリとその詳細情報をリアルタイムで閲覧できます。
SELECT * FROM performance_schema.events_statements_summary_by_digest;
Performance Schemaは、MySQL 5.6以降で利用可能です。
Audit Plugin
mysql --audit-log-path=/var/log/mysql/audit.log -u root -p
Audit Pluginは、MySQL 5.6以降で利用可能です。
mysql monitoring