MySQL でスロークエリログ機能を有効にする方法

MySQL でスロークエリログ機能を有効にする方法

MySQL スロー クエリ ログは、問題のあるクエリを追跡するのに非常に役立ちます。現在のプログラムに多くのリソースを消費する SQL ステートメントがあるかどうかを分析できます。これは便利なログです。パフォーマンスへの影響はほとんどなく (すべてのクエリが高速であると仮定)、最も注意が必要なクエリ (インデックスが欠落しているか、インデックスが最適に適用されていない) が強調表示されます。では、MySQL の低速クエリ ログを有効にするにはどうすればよいでしょうか。

スロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメントを記録できます。パフォーマンスのボトルネックを特定して分析することで、データベース システムのパフォーマンスをより最適化できます。

(1)構成開始

リナックス:

MySQL 構成ファイル my.cnf に次のステートメントを追加します。

log-slow-queries=/var/lib/mysql/slowquery.log #ログファイルの保存場所を指定します。空でもかまいません。システムはデフォルトのファイル host_name-slow.log を指定します。
long_query_time=5 #超過した時間を記録します。デフォルトは 10 秒ですが、ここではクエリ時間が 5 秒を超えるクエリ ステートメントに設定します log-queries-not-using-indexes = on #インデックスを使用しないクエリ ステートメントを一覧表示します #log-queries-not-using-indexes インデックスを使用しないすべてのクエリを記録するかどうか。状況に応じてオンにするかどうかを決定できます #log-long-format インデックスを使用しないクエリを含むすべてのクエリ レコードを記録するかどうか

ウィンドウズ:

my.ini の [mysqld] に次のステートメントを追加します (ステートメントのオプションとその意味は上記と同じです)。

ログスロークエリ = E:\mysql\log\mysqlslowquery.log
長いクエリ時間 = 5

(2)鑑賞方法

リナックス:

mysqldumpslowコマンドを使用して表示する

一般的なコマンド

  • -s ORDER 何を基準に並べ替えるか (t、at、l、al、r、ar など)、デフォルトは 'at'
  • -t NUM 上位n個のクエリのみを表示
  • -g PATTERN grep: この文字列を含む文のみ考慮する

例えば:

-s は順序です。説明が十分詳細ではありません。私はそれを使用しており、コードを読みました。主に c、t、l、r と ac、at、al、ar があり、それぞれクエリ回数、時間、ロック時間、返されたレコード数でソートされます。前に a を追加すると順序が逆になります。

-t は上位 n を意味し、返されるレコードの数を意味します。

-g、その後に通常のマッチングパターンを書くことができます。大文字と小文字は区別されません。

具体的なコマンドは以下のとおりです。

mysqldumpslow -sc -t 20 ホストの遅い.log

mysqldumpslow -sr -t 20 ホストの遅い.log

上記のコマンドは、アクセス回数が最も多い 20 個の SQL ステートメントと、返されたレコードが最も多い 20 個の SQL ステートメントを表示できます。

mysqldumpslow -t 10 -st -g “left join” host-slow.log時間別に left join を含む最初の 10 個の SQL ステートメントを返します。

ウィンドウズ:

MySQLスロークエリを初めて有効にすると、指定したディレクトリにログファイルが作成されます。この記事ではmysqlslowquery.logです。このファイルの内容は次のとおりです(MYSQLスロークエリを初めて有効にしたとき)

E:\web\mysql\bin\mysqld、バージョン: 5.4.3-beta-community-log (MySQL Community Server (GPL))。次で開始:
TCP ポート: 3306、名前付きパイプ: (null)
時間IDコマンド引数

次のコマンドを使用して、遅いクエリ レコードの数を表示できます。

mysql> '%slow%' のようなグローバル ステータスを表示します。
+---------------------+-------+
| 変数名 | 値 |
+---------------------+-------+
| 遅い起動スレッド | 0 |
| 遅いクエリ | 0 |
+---------------------+-------+

テスト

1. 低速クエリSQL文を実行する

mysql> sleep(2) を選択します。

2. スロークエリログが生成されているかどうかを確認する

ls /usr/local/mysql/data/slow.log

ログが存在する場合、MySQL スロー クエリ設定が正常に有効化されています。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • MySql のスロークエリ分析とスロークエリログの開き方の詳細説明
  • MySQL のスロークエリログを有効にする方法 log-slow-queries
  • MYSQL5.7.9 でスロークエリログを有効にするヒント
  • mysql のスロークエリを有効にする方法 mysql のスロークエリのログを有効にする方法
  • MySQL でスロークエリログを有効にする方法
  • MySQLデータベースでスロークエリログを有効にする方法の詳細な説明
  • MySQL スロークエリログの役割と公開
  • MySQL スロークエリログの有効化と設定
  • MySQL最適化ソリューション: スロークエリログを有効にする

<<:  Zabbix上のすべてのホストのIPとホスト名を取得する

>>:  jsを使用して中国語からピンインへの変換の完全な手順を実行します

推薦する

HTML でフォームを中央揃えにする

以前、写真が与えられ、その写真スタイルに基づいてフォームを作成するという課題に遭遇しました。しかし、...

Docker プライマリ ネットワーク ポート マッピング構成

ポートマッピングDocker コンテナを起動する前にポート マッピングを行わないと、コンテナ外部のネ...

Linux でメモリ使用量を確認する方法

システムの問題、アプリケーションの速度低下、または原因不明の問題をトラブルシューティングする場合、最...

W3C チュートリアル (11): W3C DOM アクティビティ

ドキュメント オブジェクト モデル (DOM) は、プログラムがドキュメントのコンテンツ、構造、およ...

Linux ブートシステム方式の分析

この記事では、Linux システムを起動する方法について説明します。ご参考までに、詳細は以下の通りで...

高性能な HTML アプリケーションを作成するためのヒント

Web ページのパフォーマンスを向上させるにはどうすればよいでしょうか?ほとんどの開発者は、Java...

JavaScriptは文字の出現回数をカウントします

この記事の例では、文字の出現回数をカウントするJavaScriptの具体的なコードを参考までに共有し...

読み込み進捗バーのネイティブ JS 実装

この記事では、ネイティブ JS によって実装された動的読み込みプログレス バーの特殊効果を紹介します...

MySQLカバーインデックスの使用例

カバーインデックスとは何ですか?クエリで使用されるすべてのフィールドを含むインデックスを作成すること...

MySQL のソートとページング (order by と limit) と既存の落とし穴

並べ替えクエリ (order by)電子商取引の場合: 今日完了したすべての注文を表示し、取引金額に...

ウェブページの再設計の7つの主要要素 ウェブページの再設計の7つの主要要素を共有する

Shopify Plus は、私たちが設立した e コマース プラットフォームのエンタープライズ バ...

MySQLステートメントの記述と実行順序を理解するだけです

MySQL ステートメントの書き込み順序と実行順序には大きな違いがあります。書き順、mysql の一...

フレックスマルチカラムレイアウトで発生する問題と解決策の詳細な説明

フレックス レイアウトは間違いなくシンプルで使いやすいです。レイアウトをよりシンプルかつ高速にします...

Vue ログインページ用の動的パーティクル背景プラグインの実装

目次動的パーティクル効果は次のとおりです。プラグインをインストールする動的パーティクル効果は次のとお...

CSS の flex と inline-flex の違いの詳細な説明

inline-flex は inline-block と同じです。内部要素用の display:fl...