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

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

推薦する

HTML 選択タグにリンクを追加する 3 つの方法

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

Docker チュートリアル: コンテナの使用 (簡単な例)

Docker を初めて使用する場合は、コンテナの管理を始めるために習得する必要がある基本的なコマン...

Linux ipcsコマンドの使用

1. コマンドの紹介ipcs コマンドは、Linux のプロセス間通信機能の状態を報告するために使用...

レスポンシブデザインについて知っておくべきこと

レスポンシブデザインとは、ウェブサイトの開発プロセス中に、ユーザーの操作やデバイス環境に応じて対応す...

ボタンの権限判定を実装するためのVueカスタムv-has命令

アプリケーションシナリオバックグラウンド管理システムを例にとると、各ユーザーには異なるボタン権限があ...

...

Vue で video.js を使用して m3u8 形式のビデオを再生する方法

目次1. インストール2. videojsの紹介3. コンポーネントでのテストと使用1. 基本的な自...

Vueダイナミックフォームの詳細な応用

概要バックグラウンド管理システムには多くのフォーム要件があります。データをjson 形式で書き込み、...

Vue のライフサイクルとフック関数の詳細な説明と典型的な面接の質問

目次1. Vue ライフサイクル2. フック機能2.1 4つの段階と8つの方法に分かれています。 2...

MySQLの左結合を内部結合に素早く変換するプロセス

日々の最適化プロセス中に、奇妙なことに気付きました。同じ SQL にまったく異なる 2 つの実行プラ...

Nginx で CDN サーバーを構築する方法の詳細な説明 (画像とテキスト)

Nginxのproxy_cacheを使用してキャッシュサーバーを構築する1: ngx_cache_...

Vue-router は現在の場所 (/path) へのナビゲーションを許可しません。エラーの原因と修正

目次エラーメッセージ原因エラーのデモンストレーション回避策方法1方法2方法3エラーメッセージ現在の場...

CenterOS7 インストールおよび構成環境 jdk1.8 チュートリアル

1. まずcenterosに付属のJDKをアンインストールします rpm-qa|grepopenjd...

DBeaver を MySQL バージョン 8 以降に接続し、起こりうる問題を解決する方法の詳細な説明

データベース MySQL バージョン 8.0.18 DBeaver.exeをダウンロードするダウンロ...

JavaScript でロジック判定コードを最適化する方法

序文日常生活で使用する論理的判断文には、if...else...、switch...case...、...