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 サービス オーケストレーション コマンドの詳細な説明

推薦する

Node.js で Bash スクリプトを書くための究極のソリューション

目次序文zxライブラリ$`コマンド` CD()フェッチ()質問()寝る()スローしない()チョークフ...

HTML で JavaScript の全選択/全選択解除操作を実行するサンプル コード

コードをコピーコードは次のとおりです。 <html> <ヘッド> <m...

CSS 背景画像を設定するための 6 つの興味深いヒント

background-image は、おそらくすべてのフロントエンド開発者がキャリアの中で少なくとも...

プロジェクトにおける CSS グリッドシステムの柔軟な使用方法の詳細な説明

序文CSS グリッドは通常、さまざまなフレームワークにバンドルされていますが、実際のビジネス ニーズ...

MySQL: データの整合性

データ整合性は、エンティティ整合性、ドメイン整合性、参照整合性に分けられます。参照整合性:参照整合性...

Linux ネットワークプログラミング機能の簡単な分析

目次1.ソケットを作成する2. ソケットをバインドする3. 聞き手を作る。聞く4. 接続が受け入れら...

Windows 7 での MySQL 8.0.18 の導入とインストールのチュートリアル

1. 事前準備 (windows7+mysql-8.0.18-winx64) 1. ダウンロードアド...

MySQL 8の新機能ROLEの詳しい説明

MySQL ROLE はどのような問題を解決しますか?プロフェッショナルな資質を持ち、権限管理に細心...

16進カラーコード(完全版)

赤とピンク、およびそれらの 16 進コード。 #990033 #CC6699 #FF6699 #FF...

MYSQLはUnionを使用して2つのテーブルのデータを結合し、表示します。

UNION演算子の使用union : 2 つ以上の SELECT ステートメントの結果を 1 つの...

mybatis-plusページングパラメータが渡された後、SQLのwhere条件にはページング情報操作の制限がありません

2時間近くかけて、さまざまな方法を試しました。後で、whereでフィルタリングした後のデータ量が1ペ...

純粋な CSS 実装 (スクリプトなし) HTML コマンド スタイルのツールチップ テキスト プロンプト効果

実行プロセスを分析します。マウスをノードに移動して、ノードにツールチップ実装を開くための識別子 (...

VMware 仮想マシン ubuntu18.04 インストール チュートリアル

インストール手順1. 仮想マシンを作成する 2. [カスタム(詳細)]を選択し、[次へ]をクリックし...

MySQL データ型 DECIMAL の詳細な分析

序文:金額の保存など、小数点数を保存し、精度要件がある場合、通常は DECIMAL フィールド タイ...

MySQL でよく使用されるデータベースとテーブル シャーディング ソリューションの概要

目次1. データベースのボトルネック2. サブライブラリとサブテーブル2. 横長テーブル3. 垂直サ...