MySQL スロー クエリ (正式名称はスロー クエリ ログ) は、MySQL によって提供されるログ レコードであり、応答時間がしきい値を超えた MySQL のステートメントを記録するために使用されます。特定の環境では、実行時間が long_query_time 値を超える SQL ステートメントがスロー クエリ ログに記録されます。 long_query_time のデフォルト値は 10 です。つまり、10 秒を超えて実行されるステートメントがログに記録されます。デフォルトでは、MySQL データベースはスロー クエリ ログを開始しないため、このパラメータは手動で設定する必要があります。 もちろん、チューニングに必要がない場合は、スロークエリログを有効にするとパフォーマンスに多少の影響が出るため、このパラメータを有効にすることは一般的には推奨されません。 さらに、スロー クエリ ログは、ファイルおよびデータベース テーブルへのログ レコードの書き込みをサポートします。 MySQL の遅いクエリに関連するパラメータの説明:
では、スロークエリログをどのように構成するのでしょうか?デフォルトでは、slow_query_log の値は OFF になっており、スロー クエリ ログは無効になっています。次のように slow_query_log の値を設定すると、これを有効にできます。 '%slow_query_log%' のような変数を表示します。 +----------------------+-----------------------------------------------+ | 変数名 | 値 | +----------------------+-----------------------------------------------+ | slow_query_log | オフ | | slow_query_log_file | /home/WDPM/MysqlData/mysql/DB-Server-slow.log | +----------------------+------------------------------------------------+ セット内の 2 行 (0.00 秒) set global slow_query_log=1 を使用してスロー クエリ ログを有効にすると、現在のデータベースにのみ影響し、MySQL を再起動すると無効になります。永続的に有効にしたい場合は、設定ファイル my.cnf を変更する必要があります (他のシステム変数についても同様です) グローバル slow_query_log=1 を設定します。 my.cnf で slow_query_log および slow_query_log_file パラメータを追加または変更するには、次のようにします。
slow_query_log_file パラメータは、スロー クエリ ログの保存パスを指定するために使用されます。デフォルトは、host_name-slow.log ファイルです。 'slow_query_log_file' のような変数を表示します。 +---------------------+-----------------------------------------------+ | 変数名 | 値 | +---------------------+-----------------------------------------------+ | slow_query_log_file | /home/WDPM/MysqlData/mysql/DB-Server-slow.log | +---------------------+-----------------------------------------------+ セット内の 1 行 (0.00 秒) スロー クエリ ログを有効にすると、スロー クエリ ログにはどのような SQL が記録されますか?これはパラメータ long_query_time によって制御されます。デフォルトでは、long_query_time の値は 10 秒です。コマンドまたは my.cnf パラメータを使用して変更できます。 実行時間が long_query_time とまったく同じ状況は記録されません。つまり、MySQL ソース コードでは、long_query_time より大きいと判断され、それ以上と判断されることはありません。 MySQL 5.1 以降、long_query_time は、以前は秒単位でのみ記録されていた SQL ステートメントの実行時間をマイクロ秒単位で記録し始めます。テーブルに記録する場合は、マイクロ秒部分ではなく整数部分のみが記録されます。 ローカル設定方法を使用する場合、場合によっては次のことが発生する可能性があることに注意してください。以下を参照してください。 'long_query_time%' のような変数を表示します。 # 現在の long_query_time を表示します +-----------------+-----------+ | 変数名 | 値 | +-----------------+-----------+ | 長いクエリ時間 | 10.000000 | +-----------------+-----------+ グローバル long_query_time=4 を設定します。 # 現在の long_query_time 時間を設定します。'long_query_time' のような変数を表示します。 # long_query_timeを再度確認する 上記のように、変数 long_query_time は変更されていますが、クエリ変数 long_query_time の値は 10 のままです。変更されていない可能性はありますか?注: コマンド set global long_query_time=4 を使用して時間を変更した後、変更された値を確認するには再接続するか、新しいセッションを開く必要があります。現在のセッションの変数値のみを表示するには、「long_query_time」などの show variables を使用します。セッションを再接続する代わりに、「long_query_time」のようなグローバル変数を表示することもできます。 log_output パラメータは、スロー クエリ ログの保存方法を指定します。 l log_output='FILE' は、ログをファイルに保存することを意味します。デフォルト値も 'FILE' です。 l log_output='TABLE' は、ログをデータベースに保存し、ログ情報が mysql.slow_log テーブルに書き込まれることを意味します。また、2 つのログ保存方法もサポートされており、設定時にコンマで区切ることができます (例: log_output='FILE,TABLE')。 システムの専用ログ テーブルにログを記録すると、ファイルにログを記録する場合よりも多くのシステム リソースが消費されます。したがって、低速クエリ ログを有効にしてシステム パフォーマンスを向上させる必要がある場合は、最初にファイルにログを記録することをお勧めします。 '%log_output%' のような変数を表示します。 +---------------+-------+ | 変数名 | 値 | +---------------+-------+ | ログ出力 | ファイル | +---------------+-------+ グローバル log_output='TABLE' を設定します。 '%log_output%' のような変数を表示します。 +---------------+-------+ | 変数名 | 値 | +---------------+-------+ | ログ出力 | テーブル | +---------------+-------+ sleep(5)を選択します。 +----------+ | 睡眠(5) | +----------+ | 0 | +----------+ 上記の sleep5 を実行すると、この操作がスロークエリログに記録されます。見てみましょう: mysql> mysql.slow_log から * を選択します。 +---------------------+----------------------------+------------+------------+------------+---------------+----+----------------+-------------+------------+ | 開始時刻 | ユーザーホスト | クエリ時間 | ロック時間 | 送信行数 | 検査済み行数 | db | 最終挿入 ID | 挿入 ID | サーバー ID | SQL テキスト | スレッド ID | +---------------------+----------------------------+------------+------------+------------+---------------+----+----------------+-------------+------------+ | 2016-06-16 17:37:53 | root[root]@localhost [] | 00:00:03 | 00:00:00 | 1 | 0 | | 0 | 0 | 1 | sleep(3) を選択 | 5 | | 2016-06-16 21:45:23 | root[root]@localhost [] | 00:00:05 | 00:00:00 | 1 | 0 | | 0 | 0 | 1 | sleep(5) を選択 | 2 | +---------------------+----------------------------+------------+------------+------------+---------------+----+----------------+-------------+------------+ 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Docker Compose マルチコンテナデプロイメントの実装
>>: Vue2.x における双方向バインディングの原理と実装
目次マスターの後ろの秒数オリジナルの実装最終マスタータイムスタンプマスターとのクロック差他の実行時間...
序文最近、仕事の都合で、約 1000w の大量のデータを MySQL に挿入する必要があり、時間がか...
1. 括弧の役割1.1 角括弧 [ ]属性名が角括弧で囲まれている場合、右側には式の値が割り当てられ...
目次序文🌟 1. APIの紹介2. 複数のデータソースの監視3. リスニングアレイ4. 監視対象5....
目次1. 問題の説明2. 問題分析3. 問題解決1. Dockerのディスク使用量を確認する2. 再...
チュートリアルシリーズMySQL シリーズ: MySQL リレーショナル データベースの基本概念My...
オフセットOffset はオフセットです。関連プロパティの offset シリーズを使用すると、次の...
最近の製品テストでは、同時呼び出し数が 10 未満の場合に応答時間が 100 ミリ秒以内に維持できな...
1. 新しいユーザーを作成します。 1. SQL ステートメントを実行して新しいものを作成します (...
この記事では、トップに戻るボタンを実装するためのJavaScriptの具体的なコードを参考までに紹介...
序文一般的な開発では、画像をディレクトリにアップロードし、ディレクトリとファイル名を連結してデータベ...
弊社の Web プロジェクトの 1 つでは、新しい都市の増加によりトラフィックと DB 負荷が増加し...
目次1. インストール2. main.jsにインポートする3. 使用Vue3がリリースされてからしば...
新しいウィンドウが開きます。 利点: ユーザーがリンクをクリックしても、現在閲覧しているコンテンツは...
この記事では、例を使用して、MySQL の非主キーの自己増分の使用方法を説明します。ご参考までに、詳...