MySQL スロー クエリ ログは、指定した時間しきい値を超えるクエリ情報を提供し、パフォーマンスの最適化のための主な参照を提供します。
MySQL スロー クエリ ログは、開いて設定するのが非常に簡単で、記録されたファイルを指定できます。 (またはテーブル)、超過した時間のしきい値などを遅いSQLとして記録できます
正直、sqlserverのトレースや拡張イベントと比べると(この2つの機能はそれだけではありませんが)、MySQLの構成は複雑です。いつも人々にとても爽やかな気持ちを与えてくれます。
1. スロークエリログを開くには、通常の状況では、設定ファイルにslow_query_log = 1設定を追加するだけです。つまり、slow_query_log_fileが指定されていない場合、スロークエリログを開くには、ホスト名 + 'slow' が自動的に生成されます
2. デフォルトでは、スロークエリを記録するための時間しきい値は 10 秒です
デフォルトでは、slow_query_log = 1 を指定すると、MySQL を起動すると、スロー クエリを開いて、デフォルトの Hostname++ 'slow'.log ファイルを自動的に生成して、実行時間が 10 秒を超えるスロー クエリを記録できます。
スロークエリのログファイル名(存在しない場合は自動的に作成されます)とスロークエリを記録する時間のしきい値(デフォルトではない10秒)を明示的に指定することもできます。
設定ファイルでlong_query_timeを指定する場合、時間単位は必要なく、1秒を表す1などの値のみが必要であることに注意してください。時間単位が指定されている場合、サービスは開始されません。
以下はログファイルに記録される遅いSQLの例です
3. 遅いクエリのログをテーブルに記録します
設定: 遅いクエリをテーブルに記録するには、log_output設定を追加する必要があります。 table Winning
mysql ライブラリの下にデフォルトの throw_log テーブルがあります。slow_query_log_file = throw_log を直接設定して、スロー クエリ ログをテーブルに記録できます。
記録された遅いSQLは以下の通りです。 sql_textは元のSQLテキストではなくバイナリ情報であることがわかります
CONVERT関数で変換できます。
ログファイルとテーブルに記録されるスロークエリの違いについて:
1. スロークエリはログファイルとテーブルに記録されますが、テーブルに記録される場合、実行時間はそれほど変わりません。スロークエリの情報は微妙になるほど正確ではありません、
2. スロークエリの情報がテーブルに記録されていればクエリには便利ですが、構造化データなので記録するよりも少し遅くなる可能性がありますスロー クエリ ログ ファイル (フラット テキスト ファイル) (個人的な推測) に記録されている場合は、mysqldumpslow ツールで解析する必要があります。
3. 遅いクエリでは、実行に失敗したクエリは記録されません。たとえば、long_query_time が 10 (10 秒) に設定され、クエリが 10 秒を超えても、他の理由で実行に失敗した場合、MySQL の遅いクエリは記録されません。このクエリ情報を記録できます。
以上がMySQL スロークエリログに関連する構成と使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。