MySQL スロークエリログの役割と公開

MySQL スロークエリログの役割と公開

序文

MySQL スロー クエリ ログは、MySQL が提供するログ レコードの一種です。これは、応答時間がしきい値を超えた MySQL のステートメントを記録するために使用されます。具体的には、実行時間が long_query_time 値を超えた SQL ステートメントがスロー クエリ ログに記録されます。 long_query_time のデフォルト値は 10 です。これは、ステートメントが 10 秒以上実行されることを意味します。デフォルトでは、MySQL データベースはスロー クエリ ログを開始しないため、このパラメータを手動で設定する必要があります。もちろん、チューニングに必要でない場合は、スロー クエリ ログをオンにすると、多かれ少なかれパフォーマンスに影響が出るため、このパラメータを開始することは一般的に推奨されません。スロー クエリ ログは、ファイルまたはデータベース テーブルへのログ レコードの書き込みをサポートします。

公式ドキュメントではスロークエリログについて以下のように紹介されています(部分的な情報ですので、詳細は公式の関連リンクを参照してください)。

スロー クエリ ログは、実行に long_query_time 秒以上かかり、検査に少なくとも min_examined_row_limit 行必要だった SQL ステートメントで構成されます。long_query_time の最小値とデフォルト値は、それぞれ 0 と 10 です。値はマイクロ秒の解像度で指定できます。ファイルにログを記録する場合、マイクロ秒部分を含めて時間が書き込まれます。テーブルにログを記録する場合、整数時間のみが書き込まれ、マイクロ秒部分は無視されます。

デフォルトでは、管理ステートメントはログに記録されず、検索にインデックスを使用しないクエリもログに記録されません。この動作は、後述するように、log_slow_admin_statements と log_queries_not_using_indexes を使用して変更できます。

スロークエリログ関連のパラメータ

MySQL の遅いクエリに関連するパラメータの説明:

  • slow_query_log : スロークエリログを有効にするかどうか。1 は有効、0 は無効を意味します。
  • log-slow-queries: MySQL データベースの古いバージョン (5.6 未満) のスロー クエリ ログの保存パス。このパラメータを設定しない場合、システムはデフォルトのファイルhost_name-slow.logを使用します。
  • slow-query-log-file: MySQL データベースの新しいバージョン (5.6 以上) のスロー クエリ ログの保存パス。このパラメータを設定しない場合、システムはデフォルトのファイルhost_name-slow.logを使用します。
  • long_query_time: 遅いクエリのしきい値。クエリ時間が設定されたしきい値を超えると、ログが記録されます。
  • log_queries_not_using_indexes: インデックスを使用しないクエリもスロークエリ ログに記録されます (オプション)。
  • log_output: ログの保存方法。 log_output='FILE' はログをファイルに保存することを意味します。デフォルト値は 'FILE' です。 log_output='TABLE' はログをデータベースに保存することを意味するため、ログ情報は mysql.slow_log テーブルに書き込まれます。 MySQL データベースは、同時に 2 つのログ保存方法をサポートします。設定するときは、log_output='FILE,TABLE' のように、カンマで区切るだけです。システムの専用ログ テーブルにログを記録すると、ファイルにログを記録するよりも多くのシステム リソースが消費されます。したがって、低速クエリ ログを有効にしてシステム パフォーマンスを向上させる必要がある場合は、まずファイルにログを記録することをお勧めします。

スロークエリログの役割

スロー クエリ ログには、実行に指定された時間よりも長い時間がかかる SQL ステートメントが記録されます。スロー クエリ ログを使用すると、パフォーマンスのボトルネックを特定して分析できます。

スロークエリログ機能が有効になっているかどうか、スロークエリログファイルが保存されているディレクトリを確認します。

「slow_query%」のような変数を表示

低速クエリのログ記録を有効にする

  • slow_query_logはスロークエリログのスイッチステータスを設定できます
  • long_query_timeはクエリのタイムアウト時間を秒単位で設定できます。

MySQL設定ファイル/etc/my.cnfで、

slow_query_log=オン
長いクエリ時間=1

スロー クエリ ログを有効にすると、クエリに 1 秒以上かかる SQL ステートメントが記録されます。ログは、MySQL を再起動すると有効になります。

次のSQLを使用して次のことをテストできます。

スリープ(2)を選択します。

遅いクエリログファイル

TCP ポート: 0 Unix ソケット: (null)
時間IDコマンド引数
# 時間: 210125 6:30:14
# ユーザー@ホスト: reptile[reptile] @ [192.168.10.254] Id: 1
# クエリ時間: 2.000380 ロック時間: 0.000000 送信行数: 1 検査行数: 0
タイムスタンプを1611556214に設定します。
スリープ(2)を選択します。
  • SET timestamp=1611556214; sqlタイムスタンプを実行
  • Query_time SQL実行時間
  • Rows_sentは複数のレコードを返します

要約する

これで、MySQL スロー クエリ ログの役割と有効化に関するこの記事は終了です。MySQL スロー クエリ ログに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySql のスロークエリ分析とスロークエリログの開き方の詳細説明
  • MySQL のスロークエリログを有効にする方法 log-slow-queries
  • MYSQL5.7.9 でスロークエリログを有効にするヒント
  • mysql のスロークエリを有効にする方法 mysql のスロークエリのログを有効にする方法
  • MySQL でスロークエリログを有効にする方法
  • MySQL でスロークエリログ機能を有効にする方法
  • MySQLデータベースでスロークエリログを有効にする方法の詳細な説明
  • MySQL スロークエリログの有効化と設定
  • MySQL最適化ソリューション: スロークエリログを有効にする

<<:  ApacheBench でマルチ URL をサポートする方法

>>:  CSSフロートの特性についての簡単な説明

推薦する

MySQL 5.7.18 アーカイブ圧縮版のインストールチュートリアル

この記事では、MySQL 5.7.18アーカイブ圧縮版をインストールする具体的な方法を参考までに紹介...

CentOS 7.2 に SuPHP をインストールするための詳細な手順

デフォルトでは、CentOS 7 上の PHP は apache または nobody として実行さ...

6つの珍しいHTMLタグ

まず: <abbr> または <acronym>これら 2 つの記号は同じ意...

JavaScript を使用してカルーセル効果を実装する

この記事では、カルーセルマップの特殊効果を実現するためのJavaScriptの具体的なコードを参考ま...

時間を節約できる Linux コマンド エイリアス 15 個

序文Linux システムの管理と保守のプロセスでは、多数のコマンドが使用されます。非常に長いコマンド...

Linux 環境に MySQL 8.0 をインストールするプロセスの紹介

目次序文1. Linux は yum ソースを変更します (MYSQL のインストールが遅い場合は試...

進捗バー効果を実現するJavaScript

この記事では、プログレスバー効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

MySQL シリーズ 9 MySQL クエリ キャッシュとインデックス

目次チュートリアルシリーズ1. MySQL アーキテクチャクエリキャッシュキャッシュされないクエリ:...

MySQL のロングトランザクション例の詳細な説明

序文: 「MySQL 入門」シリーズの記事は終了しました。今後も引き続き MySQL に焦点を当て、...

良いデザインについて

<br />「良いデザインとは何か」と答える 1 万人に対して、少なくとも 1 万 1 ...

ログインと登録機能を実現するjs

この記事の例では、ログインと登録機能を実装するためのjsの具体的なコードを参考までに共有しています。...

ネイティブ CSS で無限テキストカルーセルを実装する一般的な方法

テキストカルーセルは私たちの日常生活で非常に一般的です。スーパーマーケットや実店舗の入り口には、テキ...

MySQLパラダイムの使用に関する詳細な説明

1. パラダイムこのパラダイムの英語名は Normal Form であり、1970 年代にリレーショ...

ウェブデザインとは何か

<br />元の記事: http://www.alistapart.com/articl...