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 における双方向バインディングの原理と実装
現在の日付 + 時刻 (日付 + 時刻) を取得する関数: now() mysql> now(...
<br />関連記事: Web スキル: 複数の IE バージョンを共存させるソリューシ...
データベースを表示show databases;データベースを作成するDATABASE データベース...
目次1. 単一データベースのバックアップ2. 圧縮バックアップ3. マルチデータベースバックアップ4...
今日ログインページを書いていたとき、個人情報と携帯電話番号を認証する必要がありましたが、ページにボタ...
CentOS にはデフォルトで MariaDB がインストールされていますが、これは MySQL の...
Centos8仮想マシンを起動し、上下キーを押して図1のインターフェースの最初の行を選択します。図1...
LAN 内のマシンは外部ネットワークにアクセスできますが、外部ネットワークは内部ネットワークにアクセ...
html <div class="スピナー"></div&g...
ログインを提供し、ユーザー情報データインターフェースを取得するapi/user.js内 '@...
この記事では、簡単なドラッグ効果を実現するためのjsの具体的なコードを参考までに共有します。具体的な...
1. CSS変数がもたらす質的変化CSS 変数によってもたらされる改善は、CSS コードの節約や C...
Alibaba Cloud のカスタム Ubuntu イメージのインポートには、OSS スナップショ...
<br /> 第 1 部と第 2 部では、Web サイトのパフォーマンス、ページ コンテ...
この記事では、ファイルのアップロードとダウンロード機能を実装するためのVueの具体的なコードを例とし...