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

推薦する

MySQL の Docker インストールと設定手順

目次序文環境インストールMySQLコンテナを作成して起動する思い出させるMySQLコンテナコマンドを...

CSS3はリストの無限スクロール/カルーセル効果を実現します

効果プレビューアイデア現在のリストを最後の項目までスクロールし、すぐに最初の項目に戻ります。問題1....

選択タグ内のオプションをクリアする3つの方法

方法1コードをコピーコードは次のとおりです。 document.getElementById(&qu...

JS での new の手書き実装

目次1 新しいオペレータの紹介2 新しいものは何をしましたか? 3 新しい演算子の実装をシミュレート...

MySQL 8.0.25 解凍版のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.25解凍版のインストールチュートリアル、参考までに具体的な内容は以下のとおりです...

Linux の Makefile とは何ですか? どのように機能しますか?

この便利なツールでプログラムをより効率的に実行およびコンパイルしますMakefile は自動コンパイ...

プロトタイプとプロトタイプチェーン プロトタイプとプロトタイプの詳細

目次1. プロトタイプ2. プロトタイプチェーン2.1 コンストラクタ2.2 電話をかける/申し込む...

Redhat 7.3 に MySQL 8.0.22 をインストールするための詳細なチュートリアル (バイナリ インストール)

目次1. MySQLインストールパッケージをダウンロードする2. MySQLのアンインストール手順3...

Vue ページ印刷で自動ページングを実装する 2 つの方法

この記事では、ページ印刷の自動ページングを実現するためのVueの具体的なコードを例として紹介します。...

CocosCreator で http と WebSocket を使用する方法

目次1. HTTPGET 2. HTTP POSTウェブソケット4. Egretのhttpとwebs...

HTML のテキストエリアの改行問題の概要

最近、Textrea に転送したときに、データが本当に行ごとに保存できるかどうかという問題に遭遇しま...

入力タイプ=テキスト値=str を使用するための不完全なソリューション

今日、非常に奇妙な問題に遭遇しました。次のコードを見てください。 SimpleDateFormat ...

初心者でもjsのtypeofとinstanceofの違いを理解できます

目次1. 型2. インスタンス3. 違い1. 型typeof 演算子は、評価されていないオペランドの...

数ステップでサイバーパンク2077風の視覚効果を実現するCSS

背景記事を始める前に、賽博朋克とは何か、賽博朋克2077とは何かを簡単に理解しましょう。サイバーパン...

JavaScript の instanceof メソッドの手動実装

1. instanceofの使用法instanceof演算子は、コンストラクター関数のprototy...