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フロートの特性についての簡単な説明

ブログ    

推薦する

CSSカウンター関連属性の学習の詳細な説明

CSS カウンター属性はほぼすべてのブラウザ (IE8 を含む) でサポートされていますが、あまり使...

ローカルサーバーを構築するためのwebpack-dev-serverの実装

目次序文webpack-deb サーバーwebpack-dev-server 起動エラー解決策1解決...

Mysql の varchar 型に関する注意点

varchar の保存ルール4.0 未満のバージョンでは、varchar(20) は 20 バイトを...

MySQLがブール型を返すいくつかの状況について簡単に説明します。

mysqlはブール型を返します最初のケースでは、直接戻ります select id='22a...

MySQL 5.7.17 winx64 のインストールと設定のチュートリアル

今日、MySQL データベースをコンピューターに再度インストールしました。システムを再インストールす...

JSで実施された機雷掃海プロジェクトの概要

この記事では、JS掃海プロジェクトの概要を参考までに紹介します。具体的な内容は次のとおりです。プロジ...

CentOS 7.x dockerはoverlay2ストレージ方式を使用する

/etc/docker/daemon.json を編集し、以下を追加します。 { "ストレ...

フラットスタイルを使用してウェブサイトをデザインする方法

フラットなウェブサイト構造の本質はシンプルさです。コンテンツの重要なポイントを強調し、ページの装飾効...

vue-cli 3 で vue-bootstrap-datetimepicker 日付プラグインを使用する方法

需要背景最近、Vue を使用してフロントエンド エンジニアリング システムと組み合わせ、以前のデモを...

Windows Server のインストール後にワイヤレスとオーディオが機能しない問題を解決する

1. ワイヤレスPowerShell を実行し、次のコマンドを入力します。 install-wind...

Navicat の MySQL へのリモート接続が遅い理由の詳細な説明

最終的な解決策は最後の写真にありますリモート データベース ( Linux システム) に接続したと...

Dockerを使用してサーバー上で複数のPHPバージョンを実行する

PHP7 がリリースされてからかなり時間が経ちますが、パフォーマンスが大幅に向上したことはよく知られ...

Tomcat サーバーの応答が遅い場合の解決策

1. 分析的思考1. 機械自身の理由を排除する2. サーバーパフォーマンス分析3. プロジェクト自体...

mysql コマンドライン スクリプトの実行例

この記事では、例を使用して MySQL コマンドライン スクリプトの実行について説明します。ご参考ま...

MySQLクエリで大文字と小文字を区別しない問題を解決する方法

質問最近、SSH フレームワークを使用して実用的なプロジェクトを完了していたときに、長い間悩まされて...