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 マルチページディレクトリパッケージ化手順の記録

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

推薦する

http.server に基づく LAN サーバーの構築プロセスの分析

皆さんはこのような状況に遭遇したことがあるでしょうか。プロジェクトや研究開発を行う際に、緊急にファイ...

Linux で MySQL 5.7.19 をアンインストールする方法

1. MySQLが以前にインストールされていたかどうかを確認するコマンド: rpm -qa|grep...

CSSインジェクションの知識の要約

最近のブラウザでは、CSS 内で JavaScript を実行することはできなくなりました。以前は、...

フォント宝庫 50 種類の素晴らしい無料英語フォントリソース パート 1

デザイナーは独自のフォント ライブラリを持っているため、プロジェクトの設計時にすぐに使用できます。今...

LinuxでIPアドレスが表示されない問題の解決方法

目次序文解決:ステップ1ステップ2序文環境: VMware Workstation 上に Linux...

JavaScript 上級プログラミング: 変数とスコープ

目次1. 元の値と参照値2. インスタンス3. 範囲1. 元の値と参照値6 つの単純なデータ型の値は...

MySQL実践スキル: 2つのテーブルに異なるデータがあるかどうかを比較する方法の分析

この記事では、MySQL が 2 つのテーブルを比較して、異なるデータがあるかどうかを確認する方法を...

MySQL thread_stack 接続スレッドの最適化

MySQL は、ネットワーク経由だけでなく、名前付きパイプ経由でも接続できます。MySQL への接続...

Linux システム (CentOS7 インストール) に JDK8 をインストールするための詳細なチュートリアル

JDKのインストールシステムのインストールについてはあまり詳しく説明しません。インストール手順はオン...

CentOS に Redis と MySQL をインストールする

1|0MySQL(MariaDB) 1|11. 説明MariaDB データベース管理システムは My...

iframe 適応サイズ実装コード

ページドメインの関係:メインページ a.html はドメイン A: www.jb51.net に属し...

ウェブデザイナーは3つの側面からウェブページを最適化する必要がある

<br />帯域幅の増加に伴い、Web ページ上のオブジェクトも増えているため、Web ...

nginx ssl を設定して https アクセスを実装する手順 (初心者向け)

序文サーバーを展開した後、私は大きな喜びを感じながら自分の Web サイトにアクセスし、見たものすべ...

Node.js の TCP 接続処理のコア プロセス

数日前、友人と Node.js の epoll とリクエスト処理に関する知識を交換しました。今日は、...

MySQL ストアド プロシージャの作成と呼び出しの詳細な説明

目次序文ストアドプロシージャ: 1. ストアドプロシージャの作成と呼び出し1. ストアドプロシージャ...