MySQL の実行済み SQL 履歴を確認する方法
MySQLでは次の方法で実行履歴のSQLを確認できます。
- MySQLのジェネラルクエリログを利用する:これはすべてのクエリステートメント(SELECT、INSERT、UPDATE、DELETEなど)を記録するグローバルなロギング手法です。MySQLの設定ファイルを編集してgeneral_logパラメーターを有効にし、general_log_fileパラメーターでログファイルの場所を指定します。その後、テキストエディタまたはコマンドラインツールを使用して、このファイル内のSQLクエリステートメントを確認できます。
- MySQL のスロークエリログを使用する:これは指定された閾値以上の時間実行されたクエリ文を記録するログです。MySQL の設定ファイルを編集し、slow_query_log パラメータを有効にし、slow_query_log_file パラメータでログファイルの場所を指定し、long_query_time パラメータでスロークエリの時間閾値を指定します。その後、このファイル内の SQL クエリ文をテキストエディタやコマンドラインツールで確認できます。
- MySQLのPerformance Schema(パフォーマンススキーマ)を利用する:パフォーマンススキーマは、MySQL 5.5.3以降で導入された高度な機能で、実行されたクエリ文、接続情報、ロック情報などを確認できます。一連のクエリ文を実行することで、必要とするSQLの実行履歴情報などを取得できます。
- データベースのSQL実行履歴を監視・記録するのに使うことができるサードパーティのツールもいくつかあります(例: MySQL Workbench、phpMyAdmin、Navicat など)。これらのツールはビジュアルなインターフェイスと、実行履歴のSQLをより簡単に確認する方法を提供します。
クエリログとスロークエリログを有効にすると、MySQL のパフォーマンスに影響が出るため、本番環境で使用する場合には注意が必要