MySQLスローログに関する知識のまとめ

MySQLスローログに関する知識のまとめ

1. スローログの紹介

スロー ログの正式名称はスロー クエリ ログで、主に MySQL での実行に指定された時間よりも長い時間がかかる SQL ステートメントを記録するために使用されます。スロークエリログを使用すると、実行効率が低いステートメントを見つけて最適化することができます。

デフォルトでは、MySQL ではスロー ログは有効になっていません。スロー ログを有効にするには、slow_query_log パラメータを変更します。スローログに関連するパラメータは次のように導入されています。

  • slow_query_log: スロークエリログを有効にするかどうか。デフォルト値は 0 です。0 または 1 に設定できます。1 は有効を意味します。
  • slow_query_log_file: スロークエリログの場所と名前を指定します。デフォルト値は host_name-slow.log です。絶対パスを指定できます。
  • long_query_time: 低速クエリ実行時間のしきい値。時間がこのしきい値を超えると、クエリが記録されます。デフォルト値は 10 (秒単位) です。
  • log_output: スロークエリログの出力先。デフォルト値は file で、ログがファイルに出力されることを意味します。
  • log_timestamps: 主にエラー ログ、スロー ログ、ジェネラ ログ ログ ファイルの表示タイム ゾーンを制御します。デフォルトでは UTC タイム ゾーンが使用されます。SYSTEM システム タイム ゾーンに変更することをお勧めします。
  • log_queries_not_using_indexes: インデックスを使用しないすべてのクエリ ステートメントをログに記録するかどうか。デフォルトはオフです。
  • min_examined_row_limit: このパラメータより少ないクエリスキャン数を持つ SQL ステートメントは、スロークエリログに記録されません。デフォルト値は 0 です。
  • log_slow_admin_statements: 低速管理ステートメントがスロー ログに書き込まれるかどうか。管理ステートメントには、alter table、create index などが含まれます。デフォルト値はオフで、書き込まれないことを意味します。

一般的には、スロー ログを有効にしてしきい値時間を設定するだけでよく、残りのパラメータはデフォルトで設定できます。しきい値時間は柔軟に調整でき、たとえば 1 秒または 3 秒に設定できます。

2. スローログの練習

構成ファイルでは、次のスロー ログ関連のパラメータを設定できます。

# スロークエリログ関連の設定は、実際の状況に応じて vim /etc/my.cnf を変更できます。
 [mysqld]
 遅いクエリログ = 1
slow_query_log_file = /data/mysql/logs/slow.log
長いクエリ時間 = 1
log_timestamps = システム
log_output = ファイル

スローログに記録される内容を詳しく見てみましょう。より遅いクエリ SQL を実行して、それがスロー ログにどのように反映されるかを確認してみましょう。

# SQL 実行時間がしきい値を超えています# 時刻: 2021-05-13T17:38:03.687811+08:00
# ユーザー@ホスト: root[root] @ [192.168.85.0] ID: 2604943
# クエリ時間: 1.099889 ロック時間: 0.000144 送信行数: 39 検査行数: 45305
タイムスタンプを1620898683に設定します。
test_table から * を選択し、col_name が '%Test%' のような場合;

スロー クエリ ログが有効になっていて、出力先として FILE が選択されている場合、ログに書き込まれる各ステートメントは # 文字で始まります。遅い SQL ステートメントの各グループについて、最初の行には SQL ステートメントが実行された時刻が記録され (log_timestamps パラメータが UTC の場合、時刻は UTC タイムゾーンで表示されます)、2 行目にはステートメントを実行したユーザーと IP アドレス、および接続 ID が記録されます。3 行目のフィールドの説明は次のとおりです。

  • Query_time: 期間 ステートメントの実行時間(秒単位)。
  • Lock_time: 継続時間 ロックを取得する時間 (秒単位)。
  • Rows_sent: N クライアントに送信された行数。
  • Rows_examined: N サーバー レベルで検査された行数 (ストレージ エンジン内の処理はカウントされません)。

次の 2 行は、このステートメントが実行されたときのタイムスタンプと、特定の遅い SQL です。

実際の環境では、log_queries_not_using_indexes パラメータを有効にするとスローログが急速に増加する可能性があるため、このパラメータを有効にすることは推奨されません。スローログのスクリーニングと分析には、mysqldumpslow や pt-query-digest などのツールを使用できます。スロー ログ ファイルの場合は、定期的にアーカイブする必要があります。たとえば、スロー ログを一時的に閉じ、古いファイルの名前を変更してから、スロー ログを再度開きます。これにより、新しいログ ファイルに書き込まれ、ログ サイズが効果的に削減されます。

以上がMySQLスローログ関連の知識のまとめの詳しい内容です。MySQLスローログについてさらに詳しく知りたい方は、123WORDPRESS.COMの他の関連記事もぜひご覧ください!

以下もご興味があるかもしれません:
  • Docker MySQL コンテナでスロークエリログを有効にする方法
  • MySQL の遅いクエリの最適化ソリューション
  • MySQL で遅いクエリ SQL を見つけて最適化する詳細な例
  • MySQL最適化ソリューション: スロークエリログを有効にする
  • MySQLクエリが遅い理由
  • MySQL の遅いクエリの落とし穴
  • MySQL スロークエリログの詳細な理解
  • MySQL で遅い SQL を素早く見つける方法

<<:  CSSは半透明の境界と複数の境界のシーン分析を実現します

>>:  Docker Swarm サービス オーケストレーション コマンドの詳細な説明

ブログ    

推薦する

vue-router 4 の使用例の詳しい説明

目次1. インスタンスをインストールして作成する2. vue-router4の新機能2.1 動的ルー...

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

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

CSS グリッドレイアウトの完全ガイド

Grid は 2 次元のグリッド レイアウト システムです。これを使用すると、本質的にはハック メソ...

いくつかの面接の質問を使ってJavaScriptの実行メカニズムを調べる

目次前の単語同期と非同期前菜プレートを追加マクロタスク マイクロタスク約束しましょうタイマーを追加す...

MySQL 5.6.37 (zip) ダウンロード インストール 構成 グラフィック チュートリアル

この記事では、MySQL 5.6.37のダウンロード、インストール、設定のチュートリアルを参考までに...

nginx設定ファイルの解釈の詳細な説明

nginx 設定ファイルは主に 4 つの部分に分かれています。 main{#(グローバル設定) ht...

Tomcatc3p0 で jnid データ ソースを構成する 2 つの実装方法の分析

c3p0の使用c3p0jarパッケージをインポートする <!-- https://mvnrep...

フロントエンドの面接でよく聞かれる JavaScript の質問の完全なリスト

目次1. 手書きのインスタンス2.配列のマップメソッドを実装する3. Reduceは配列のmapメソ...

Docker 階層化パッケージを使用して Spring Boot を設定する方法

Spring Boot プロジェクトでは、Docker コンテナ、jar、war の階層化パッケージ...

Linuxテキスト処理ツールの詳細な説明

1. /etc/passwdファイル内のデフォルトシェルが/sbin/nologinではないユーザー...

Mysql通信プロトコルの詳細な説明

1.Mysql接続方法MySQL 通信プロトコルを理解するには、まず MySQL サーバーへの接続に...

Electronで不規則な形状の透明部分をクリックする実装

目次不規則なフォームの実装透明な部分をクリックする不規則なフォームの実装ここでは円形フォームを実装し...

フロントエンドJavaScriptは関数のカリー化を完全に理解している

目次1. カレーとは何か2. カレーの用途3. カリー化ユーティリティ関数をカプセル化する方法 1....

Vue を使用して CSS トランジションとアニメーションを実装する方法

目次1. トランジションとアニメーションの違い2. Vueを使用して基本的なCSSトランジションとア...

WeChatアプレットで計算機機能を実装する

この記事は、WeChat アプレットを使用して作成された簡単な計算機です。興味のある方はご覧ください...