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 における双方向バインディングの原理と実装
Web アプリケーション クラス1. みんなのためにダウンまたは私だけのためにこのウェブサイトは、ウ...
ニーズの発見領域の一部のみスクロールでき、残りの部分は移動できない場合、どのような方法を使用しますか...
1. 問題の再現:各日の合計数を日ごとにカウントします。データのない日がある場合、グループ化によっ...
1. イベントバブリング: JavaScript イベント伝播のプロセスでは、要素でイベントがトリガ...
目次MySQL フェデレーテッド クエリ実行戦略。実行計画フェデレーテッドクエリオプティマイザーMy...
多くのネットユーザーは、なぜ自分のウェブサイトはいつも色の問題を抱えていて、いつも地味に見え、注目を...
ノードにおけるhttpの役割は何ですか? httpモジュールの役割は、サーバーの作成と記述を支援する...
序文Mac システムのターミナルでファイルの権限を変更するには、Linux の chmod コマンド...
MySQL の mysql 5.7.18 zip バージョンは、クリックして次のステップをクリックし...
1. はじめにtr はテキストの一部を変換または削除するために使用されます。 tr は transl...
1 MVCCとは何かMVCC の正式名称は、マルチバージョン同時実行制御です。データベースへの同時ア...
1. Dockerコンテナ間の相互接続Docker は現在、軽量の仮想化ソリューションとなっています...
序文CentOS 環境変数設定ファイル システムは階層型システムであり、他のマルチユーザー アプリケ...
ウェブデザインでは、ウェブページを美しく見せるために矢印を装飾としてよく使用します。現在、多くのウェ...
HTML のセマンティクスはありふれた問題のようです。Google で検索すると、セマンティクスに関...