MySQL スロークエリログの設定と使用方法のチュートリアル

MySQL スロークエリログの設定と使用方法のチュートリアル

序文

MySQL スロー クエリ ログは、日常業務でよく遭遇する機能です。MySQL スロー クエリ ログは、指定された時間しきい値を超えたクエリ情報を提供し、パフォーマンス最適化の主な参照を提供します。非常に実用的な機能です。MySQL スロー クエリ ログの開き方と設定方法は非常に簡単です。記録するファイル (またはテーブル) を指定し、超過した時間しきい値を遅い SQL に記録できます。正直に言うと、sqlserver トレースや拡張イベント (これら 2 つの機能はそれだけではありませんが) と比較すると、MySQL 設定は常に非常に爽快な気分になります。

1. スロークエリログを開く

通常の状況では、スロー クエリ ログを開くには、設定ファイルにslow_query_log = 1設定を追加するだけです。slow_query_log_file が指定されていない場合は、ホスト名 + 'slow'.log のファイルが自動的に生成されます。

2. デフォルトでは、遅いクエリを記録するための時間しきい値は10秒です。

デフォルトでは、 slow_query_log = 1が指定されている場合、MySQL の起動時にスロー クエリが有効になり、実行に 10 秒以上かかるスロー クエリを記録するために、ホスト名++'slow'.log という名前のデフォルト ファイルが自動的に生成されます。

スロー クエリ ログ ファイルの名前 (存在しない場合は自動的に作成されます) とスロー クエリを記録する時間しきい値 (デフォルト以外の 10 秒) を明示的に指定することもできます。

注:構成ファイルで long_query_time を指定する場合、時間単位は不要で、1 秒の場合は 1 などの値のみが必要です。時間単位が含まれていると、サービスは開始されません。

以下は、ログ ファイルに記録された低速の SQL ステートメントの例です。

3. スロークエリログをテーブルに記録する

設定: テーブルに遅いクエリを記録するには、log_output 設定を追加する必要があります。

mysql ライブラリの下にはデフォルトの slow_log テーブルがあります。 slow_query_log_file = slow_logを直接設定して、スロー クエリ ログをテーブルに記録できます。

記録された遅いSQLは以下のとおりです。sql_textは元のSQLテキストではなくバイナリ情報であることがわかります。

CONVERT関数を使用して変換できます。

ログ ファイルに記録される低速クエリとテーブルに記録される低速クエリの違い:

1. 遅いクエリはログ ファイルとテーブルに記録されます。記録自体はそれほど違いはありません。テーブルに記録すると、遅いクエリの実行時間情報はマイクロ秒単位の精度ではなくなります。

2. スロークエリ情報をテーブルに記録すると、クエリに便利です。ただし、構造化データであるため、スロークエリログファイル(フラットテキストファイル)に記録するよりも少し遅くなる可能性があります(個人の推測)。ファイルに記録されている場合は、mysqldumpslowツールで解析する必要があります。

3. スロー クエリでは失敗したクエリは記録されません。たとえば、long_query_time が 10 (10 秒) に設定されていて、クエリの実行に 10 秒以上かかり、他の理由で失敗した場合、MySQL スロー クエリではこのクエリ情報を記録できません。

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。

以下もご興味があるかもしれません:
  • MySql のスロークエリ分析とスロークエリログの開き方の詳細説明
  • MYSQL5.7.9 でスロークエリログを有効にするヒント
  • MySQL の遅いクエリ検索とチューニングテスト
  • MySQL でスロークエリログを有効にする方法
  • MySQL スロークエリログの分析に関する基本チュートリアル
  • MySQLの遅いクエリが失敗の原因となった
  • 遅いSQL文が変換をトリガーしました

<<:  Vue-CLI マルチページディレクトリパッケージ化手順の記録

>>:  シェルで文字列内のスペースや指定された文字を削除する方法

推薦する

Nginx シグナル制御

Nginx の紹介Nginx は、高性能な HTTP およびリバース プロキシ サーバーであり、IM...

MySQL マルチテーブルクエリ例の詳しい解説 [リンククエリ、サブクエリなど]

この記事では、例を挙げて MySQL のマルチテーブル クエリについて説明します。ご参考までに、詳細...

Dockerfile ビルド中に発生する「/bin/sh: pip: コマンドが見つかりません」という問題の解決方法

記述した Dockerfile の内容は次のとおりです。 Python:3.6.8 から pip i...

CSS3アニメーションを使用した簡単な指クリックアニメーションの実装例

この記事では主に、CSS3 アニメーションで簡単な指クリックアニメーションを実装する例を紹介し、皆さ...

HTML 初心者のためのベストプラクティス 15 選

HTML 初心者向けのベストプラクティスを 30 個紹介します。 1. タグを閉じたままにする過去に...

シェルスクリプトは、Docker の半自動コンパイル、パッケージ化、およびリリースアプリケーション操作を構築します。

Docker 公開方法は、DevOps (送信、コンパイル、パッケージ化、リリースなどの一連のイベ...

MySQL 5.7.17 winx64 のインストールと設定方法のグラフィックチュートリアル

Windows インストール mysql-5.7.17-winx64.zip メソッド レコード &...

Ubuntu 20.04 と NVIDIA ドライバーのインストールに関するチュートリアル

Ubuntu 20.04をインストールする NVIDIAドライバーをインストールする Pytouch...

docker を使用して minio と java sdk を構築するプロセスの詳細な説明

目次1minioはシンプル2 Dockerビルド minio 2.1 単一ノード2.2 マルチノード...

ブログデザイン ウェブデザイン デビュー

私がデザインした最初の Web ページは次のとおりです。 私はこの業界に7年間在籍し、プログラミング...

Hタグはウェブページ制作において適切に使用すべきである

HTML タグには、ページのタイトルを処理するための特別なタグがあります。これらは h1、h2、h3...

WiFi 開発 | WiFi ワイヤレス テクノロジーの紹介

目次WiFiワイヤレステクノロジーの紹介1. WiFiテクノロジーの概要2. ESP8266の紹介W...

Vueでパスワードの表示と非表示機能を実装するアイデアを詳しく解説

効果: アイデア:入力タイプ属性を使用して、タイプ値がテキストの場合はパスワードを表示し、タイプ値が...

Reactでwindow.print()を使用した際にページが応答しなくなる問題の解決記録について

目次1. 問題の背景: 2. 問題の原因: 3. 問題解決:要約: 1. 問題の背景: window...

MySQL で null 値と空文字 ('') を区別する

日常の開発では、データベースの追加、削除、変更、クエリが一般的に行われるため、Mysql で NUL...