ホームページ  >  記事  >  データベース  >  mysqlのスロークエリステートメントとは何ですか?

mysqlのスロークエリステートメントとは何ですか?

WBOY
WBOYオリジナル
2022-02-24 11:11:514739ブラウズ

mysql では、スロー クエリ ステートメントとは、応答時間がスロー クエリ ログのしきい値を超えているステートメントを指します。特定の実行時間は、SQL ステートメントの "long_query_time" 値を超えています。"slow_query_log" パラメータを設定できます。スロークエリを有効にするかどうかを設定します。「1」はオン、「0」はオフを意味します。

mysqlのスロークエリステートメントとは何ですか?

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

mysql スロー クエリ ステートメントとは

MySQL のスロー クエリ ログは、MySQL によって提供されるログ レコードであり、MySQL で応答時間がしきい値を超えたステートメントを記録するために使用され、特に実行中の SQL を指します。 long_query_time 値を超えると、スロー クエリ ログに記録されます。

long_query_time のデフォルト値は 10 で、これはステートメントを 10 秒以上実行することを意味します。

デフォルトでは、Mysql データベースはスロー クエリ ログを開始しません。このパラメータを手動で設定する必要があります。もちろん、チューニングに必要ない場合は、このパラメータを開始することは一般に推奨されません。低速クエリ ログをオンにすると、パフォーマンスに多少の影響が生じます。スロー クエリ ログは、ファイルへのログ レコードの書き込みをサポートし、データベース テーブルへのログ レコードの書き込みもサポートします。

MySQL スロー クエリの関連パラメータの説明:

  • slow_query_log: スロー クエリ ログをオンにするかどうか。1 はオン、0 はオフを意味します。

  • log-slow-queries: 古いバージョン (5.6 より前のバージョン) MySQL データベースのスロー クエリ ログ ストレージ パス。このパラメータを設定することはできません。システムはデフォルトのファイル host_name-slow.log

  • slow-query-log-file: 新しいバージョン (5.6 以降) MySQL データベースを使用します。低速クエリ ログのストレージ パス。このパラメータは設定できません。システムはデフォルトのファイル host_name-slow.log

  • long_query_time: 遅いクエリのしきい値を設定します。クエリ時間が設定されたしきい値よりも長い場合、保持します。ログ。

  • log_queries_not_using_indexes: インデックスを使用しないクエリもスロー クエリ ログに記録されます (オプション)。

  • log_output: ログの保存方法。 log_output='FILE' は、ログをファイルに保存することを意味し、デフォルト値は 'FILE' です。 log_output='TABLE' は、ログをデータベースに保存することを意味します。

slow_query_log

デフォルトでは、slow_query_log の値は OFF であり、スロー クエリ ログが無効であることを意味します。以下に示すように、slow_query_log. の値を設定します:

mysql> show variables  like '%slow_query_log%';
 +---------------------+-----------------------------------------------+
 | Variable_name       | Value                                         |
 +---------------------+-----------------------------------------------+
 | slow_query_log      | OFF                                           |
 | slow_query_log_file | /home/WDPM/MysqlData/mysql/DB-Server-slow.log |
 +---------------------+-----------------------------------------------+

rows in set (0.00 sec)

mysql> set global slow_query_log=1;
 Query OK, 0 rows affected (0.09 sec)

スロー クエリを有効にするには、set global throw_query_log=1 を使用します。現在のデータベース、MySQL にのみ有効なログ。再起動すると無効になります。

これを永続的に有効にしたい場合は、構成ファイル my.cnf を変更する必要があります (他のシステム変数についても同様です)。

my.cnf 以下に示すように、slow_query_log および throw_query_log_file パラメータを追加または変更するには、

slow_query_log = 1
slow_query_log_file = /tmp/mysql_slow.log

次に、MySQL サーバーを再起動します。

slow_query_log_file

このパラメータは、スロー クエリ ログのストレージ パスを指定するために使用されます。デフォルトは、host_name-slow.log ファイルです。

mysql> show variables like 'slow_query_log_file';
 +---------------------+-----------------------------------------------+
 | Variable_name       | Value                                         |
 +---------------------+-----------------------------------------------+
 | slow_query_log_file | /home/WDPM/MysqlData/mysql/DB-Server-slow.log |
 +---------------------+-----------------------------------------------+
 1 row in set (0.00 sec)

推奨される学習: mysql ビデオ チュートリアル

以上がmysqlのスロークエリステートメントとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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