サードパーティ製ツールを使ってMySQLクエリを表示する方法
MySQLで最後に実行されたクエリを表示する方法
方法 1:INFORMATION_SCHEMA テーブルを使用する
MySQL 5.0以降では、INFORMATION_SCHEMA
データベースに PROCESSLIST
テーブルと QUERY_CACHE
テーブルが存在します。これらのテーブルを使用して、実行中のクエリと最近実行されたクエリを表示できます。
PROCESSLIST
テーブルには、現在実行中のすべてのスレッドに関する情報が表示されます。このテーブルには、実行中のクエリのテキストも含まれます。
SELECT id, user, host, db, command, time, state, info
FROM information_schema.processlist;
QUERY_CACHE
テーブルには、最近実行されたクエリとその結果が保存されます。このテーブルは、クエリのパフォーマンスを向上させるために使用できます。
SELECT id, query_text, last_update_time
FROM information_schema.query_cache;
方法 2:MySQL ログを使用する
MySQL サーバーは、すべてのクエリとエラーをログファイルに記録します。これらのログファイルを使用して、最近実行されたクエリを表示できます。
エラーログを使用する
エラーログには、すべてのエラーメッセージと警告メッセージが記録されます。実行されたクエリも含まれます。
tail -f /var/log/mysql/error.log
クエリログには、すべてのクエリが記録されます。
tail -f /var/log/mysql/query.log
方法 3:MySQL クライアントツールを使用する
MySQL クライアントツールには、SHOW PROCESSLIST
コマンドと SHOW QUERY CACHE
コマンドを使用して、実行中のクエリと最近実行されたクエリを表示できます。
SHOW PROCESSLIST コマンドを使用する
SHOW PROCESSLIST;
SHOW QUERY CACHE コマンドを使用する
SHOW QUERY CACHE;
上記の方法以外にも、GUI ツールやサードパーティ製のツールを使用して、MySQL で実行されたクエリを表示できます。
注意
INFORMATION_SCHEMA
テーブルとQUERY_CACHE
テーブルは、パフォーマンスに影響を与える可能性があります。これらのテーブルを頻繁に使用することは避けてください。- MySQL ログは非常に大きくなる可能性があります。ログファイルのサイズを制限することをお勧めします。
方法 1:INFORMATION_SCHEMA テーブルを使用する
-- 現在実行中のすべてのスレッドと実行中のクエリを表示する
SELECT id, user, host, db, command, time, state, info
FROM information_schema.processlist;
-- 最近実行されたクエリと結果を表示する
SELECT id, query_text, last_update_time
FROM information_schema.query_cache;
方法 2:MySQL ログを使用する
-- エラーログの最後に実行されたクエリを表示する
tail -f /var/log/mysql/error.log
-- クエリログの最後に実行されたクエリを表示する
tail -f /var/log/mysql/query.log
方法 3:MySQL クライアントツールを使用する
-- MySQL クライアントツールでログイン
mysql -u root -p
-- 現在実行中のすべてのスレッドと実行中のクエリを表示する
SHOW PROCESSLIST;
-- 最近実行されたクエリと結果を表示する
SHOW QUERY CACHE;
補足
- 上記のサンプルコードは、MySQL 8.0 を使用しています。他のバージョンの MySQL を使用している場合は、コマンドやテーブル名が異なる場合があります。
- ログファイルの場所は、MySQL のインストール方法によって異なる場合があります。
- MySQL クライアントツールは、MySQL のインストールに含まれています。
他の方法
GUI ツールを使用する
MySQL Workbench や MySQL GUI Tools などの GUI ツールを使用して、MySQL サーバーに接続し、実行中のクエリと最近実行されたクエリを表示できます。
サードパーティ製のツールを使用する
mysqldumpslow や pt-query-digest などのサードパーティ製のツールを使用して、MySQL サーバーのパフォーマンスを分析し、実行されたクエリを表示できます。
MySQL プロファイラを使用する
MySQL 8.0 では、MySQL プロファイラを使用して、実行されたクエリのパフォーマンスデータを収集できます。このデータを使用して、実行時間の長いクエリを特定し、パフォーマンスを向上させることができます。
注意事項
- GUI ツールやサードパーティ製のツールを使用する場合は、ツールの使用方法を理解する必要があります。
- MySQL プロファイラを使用するには、MySQL 8.0 を使用している必要があります。
mysql logging