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 における双方向バインディングの原理と実装
少し前に、製品バージョンをテスト用にテスターに提出したのですが、テスト結果はまったく予想外のもの...
セルの背景画像を設定でき、任意の GIF または JPEG 画像ファイルを使用できます。基本的な構文...
この記事では、MySQL 8.0.12のインストール方法に関する詳細なチュートリアルを参考までに紹介...
1.テーブル全体を更新します。データ行の列の値が空の場合は、別の列フィールドの値と同じにします。 ...
この記事では、JavaScriptで全選択と全選択解除の操作を実装するための具体的なコードを参考まで...
【はじめに】: Handtrack.jsは、ブラウザ上で直接リアルタイムの手の動きの追跡と検出を実...
目次成果を達成する実装コード最近、会社でelementUIを使い始めたため、開発の過程でテーブルのセ...
MySQL Community Server 5.7.18 の配布パッケージには .ini ファイル...
構文の構成: 1 注釈情報2 コマンド --- パラメータ [通常は大文字 | 実際には大文字と小文...
<table>テーブルデータをJSON形式に変換するJavaScript関数は次のとおり...
目次1. インデックスの基礎知識1.1 インデックスの利点1.2 インデックスの有用性1.3 インデ...
今日、私はブログサイト shoptalkshow を閲覧していて、非常に興味深いこのインターフェース...
Webkit スクロールバー スタイルのリセット1. スクロールバーには、スクロールバー ボタンとト...
目次1. 環境整備2. Dockerをインストールする3. MySQLマスタースレーブデータベースを...
この記事の例では、カスタムスクロールバーコンポーネントを実装するためのjsの具体的なコードを参考まで...