ホームページ >データベース >mysql チュートリアル >MySQL でのスロークエリログの構成と使用例

MySQL でのスロークエリログの構成と使用例

黄舟
黄舟オリジナル
2017-09-18 10:23:121425ブラウズ

MySQL スロー クエリ ログは、指定した時間しきい値を超えるクエリ情報を提供し、パフォーマンス最適化のための主な参照を提供します。

MySQL スロー クエリ ログは非常に簡単に開き、設定することができます。レコード ファイル (またはテーブル)、超過した時間しきい値などを低速 SQL に記録できます
正直に言うと、SQLserver のトレースや拡張イベント (これら 2 つの機能はそれだけではありませんが) と比較して、MySQL の構成は常にユーザーに提供します。とても爽やかな気分。

1. スロークエリログを開く

通常の状況では、設定ファイルにslow_query_log = 1設定を追加するだけで済みます。つまり、slow_query_log_fileが指定されていない場合は、ホストのファイルを開きます。 name + 'slow '.log ファイルが自動的に生成されます。

2. デフォルトでは、スロークエリを記録するための時間しきい値は10秒です

デフォルトでは、slow_query_log = 1を指定してMySQLを起動すると、スロークエリをオンにすることができ、デフォルトのホストが++'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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。