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を使用して中国語からピンインへの変換の完全な手順を実行します

推薦する

Linux の GRUB ブート プログラムの暗号化の概要

目次1. GRUB暗号化とは何か2. grub暗号化手順3. grub暗号化のロック属性1. GRU...

Linux に nginx をインストールする方法

Nginx は C 言語で開発されており、Linux で実行することをお勧めします。もちろん、Win...

HTML Web ページ リスト タグ学習チュートリアル

HTML Web ページ リスト タグの学習チュートリアル。 HTML ページでは、リストはアウトラ...

CentOS での mysql5.7 の詳細なインストールと設定のチュートリアル

インストールユーザーにインストール権限があることを確認してくださいルートスイッチなしsuルート(su...

redhat7 に yum 経由で mysql5.7.17 をインストールするチュートリアル

RHEL/CentOS シリーズの Linux オペレーティング システムには MySQL ソース自...

MySQL explain クエリ命令情報の取得原理と例

explain はクエリ実行プラン情報を取得するために使用されます。 1. 文法次のように、sele...

CSSのtranslate(-50%,-50%)は水平および垂直の中央揃え効果を実現します。

translate(-50%,-50%) 属性:中央に配置するには、長さと幅の 50% だけ上と左...

HTML テーブル マークアップ チュートリアル (2): テーブル境界属性 BORDER

デフォルトでは、テーブルの境界線は 0 ですが、テーブルの境界線を設定できます。基本的な構文<...

Docker nginx + https サブドメイン設定の詳細なチュートリアル

今日はたまたま友人のサーバーの移転を手伝うことになり、サーバーの基本的な設備の設定を行ったのですが、...

JavaScript で配列遅延評価ライブラリを実装する方法

目次概要達成方法具体的な実装評価関数の終了を決定する生成関数の範囲変換関数マップフィルター割り込み機...

すべてのブラウザとの完全な互換性を実現するために最適なプリセットを選択してください

各ブラウザの select タグのプロパティと各ブラウザのサポートが多少異なるため、各ブラウザでの選...

tinyMCEの使い方と体験の詳細な説明

tinyMCE の使用方法の詳細な説明初期化TinyMCE を初期化するときは、ページの HEAD ...

Vue.js で AntV X6 を使用する手順の例

目次0x0 はじめに0x1 インストール0x2 ノードサイドバー0x3 統合例0x0 はじめにプロジ...

大規模な MySQL テーブルに対する count() の実装を最適化しました

以下は、B+ ツリーのデータ構造と実験結果からの推測に基づいた私の判断です。間違いがあればご指摘くだ...

Linux IO 多重化 epoll ネットワーク プログラミング

序文この章では、基本的な Linux 関数と epoll 呼び出しを使用して、Linux 上で実行で...