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は高度に適応したフルスクリーンを実現します

独自のデモを作成するときに、display:flex を使用して垂直方向の中央揃えを実現したいと思い...

Linux 時間サブシステムの時間表現例の詳細な説明

序文Linux カーネルでは、元のコードとの互換性を保つため、または特定の仕様に準拠するため、また現...

MySQL シリーズ 7 MySQL ストレージ エンジン

1. MyISAM ストレージエンジン欠点:トランザクションはサポートされていません最小粒度ロック:...

WIN10 に複数のデータベースがインストールされている場合にコンピュータの速度低下を防ぐ方法

必要なときにサービスを有効にし、必要がないときは無効にします。データベース サービスを管理する方法:...

水平プログレスバーの最後にテキストを表示するための実装コードの CSS 記述

問題の説明仕事で以下の成果を達成したいと考えています。 解決div タグに相対配置を追加し、絶対配置...

Vueは画像のズームとドラッグをサポートするリッチテキストエディタを統合しています

必要:ビジネス要件によると、写真をアップロードできる必要があり、アップロードされた写真はモバイル端末...

アコーディオン効果を実現するJavaScript

この記事では、アコーディオン効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

JavaScript イベント委任 (プロキシ) の使用例の詳細

目次導入例: イベントの委任記述方法1: イベント委譲書き方2: 各子要素がイベントをバインドする例...

MySQL InnoDB 監視 (システム層、データベース層)

MySQL InnoDB 監視 (システム層、データベース層) MySQL の監視に関しては、My...

mysql-joinsの具体的な使用方法

目次結合構文: 1. InnerJOIN: (内部結合) 2. LeftJOIN: (左結合) 3....

Tomcat および Web アプリケーションの Docker デプロイメントの実装

1.dockerをオンラインでダウンロードする yum インストール -y epel-release...

CentOS7 で Jenkins+Maven+Git 継続的インテグレーション環境を構築する方法

この記事では、Spring boot + Maven プロジェクトのデプロイメントを例に、Code ...

MySQL 5.7.18 リリース インストール ガイド (bin ファイル バージョンを含む)

インストール プロセスは、コンパイル手順を除いて、基本的にソース バージョンと同じです。この記事では...

WeChatアプレットがSMSログインを実装

目次1. インターフェース効果のプレビュー2.uViewのインストール3.uViewの設定3.1 m...

HTML ベースタグ target=_parent の使用の紹介

<base> タグは、ページ上のすべてのリンクのデフォルトのアドレスまたはデフォルトのタ...