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

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

推薦する

CSSはラジオをクリックして2つの画像スタイルを切り替えますが、複数のラジオのうち1つだけをチェックできます。

クリックされたボタンには赤い画像スタイルを実装し、選択されていない他のボタンには灰色の画像スタイルを...

モバイル端末の水平および垂直画面ビューポート検出を決定するための js のいくつかの方法

目次1. 異なるビューポートを取得する方法2. 水平画面と垂直画面のJavaScript検出3. 水...

Vue.js $refs 使用例の説明

プロパティやイベントがあるにもかかわらず、JavaScript で子コンポーネントに直接アクセスする...

MYSQLは継続サインイン機能を実装しており、サインイン後1日経過すると最初から開始します(SQL文)

1. テストテーブルを作成する テーブル `testsign` を作成します ( `userid`...

MySQL 操作: JSON データ型の操作

前回の記事では、MySQL データ保存手順パラメータの詳細な例を紹介しました。今日は、JSON デー...

航空機戦争ゲームを実装するためのネイティブJS

この記事の例では、参考のために航空機戦争ゲームを実装するためのJSの具体的なコードを共有しています。...

Reactにおけるフックの一般的な使用法

目次1. フックとは何ですか? 2. フックはなぜ現れるのでしょうか? 3. よく使われるフックは何...

HTML thead タグの定義と使用法の詳細な紹介

コードをコピーコードは次のとおりです。 <thead> <!– 最初の 2 行をヘ...

トランザクションとロックを表示するための MySQL の一般的なステートメント

データベース内のトランザクションとロックを表示するための一般的なステートメントトランザクションの待機...

なぜCSSをヘッドタグに配置する必要があるのか

考えてみてください。なぜcss 、 javascriptのようにbodyタグの末尾ではなく、 hea...

シンプルなHTMLとCSSの使い方の詳細な説明

HTML と CSS を含む JD.com のホームページの静的ページ効果を 3 日間で完成させます...

Vueモバイル端末が指のスライド効果を実現

この記事の例では、Vueモバイル端末で指のスライド効果を実現するための具体的なコードを紹介します。具...

HTMLはキャンバスを使用して箇条書きスクリーン機能を実装します

導入最近、大きな課題をこなす際に、弾幕プレイヤーを作る必要がありました。他の人のソースコードを借りて...

Ubuntu 18.04 に Anaconda3 をインストールするための詳細なチュートリアル

Anaconda は、conda、Python、およびそれらの依存関係など、180 を超える科学パッ...

WeChatアプレットでQRコードを識別するために長押しする実装プロセス

序文公式アカウントのQRコードは長押しで認識できることは皆さんご存じですが、ミニプログラムに対する制...