推奨学習: mysql ビデオ チュートリアル
MySQL のスロー クエリ ログは MySQL によって提供されます。 MySQLにおいて、応答時間が閾値(long_query_time、単位:秒)を超えたSQL文を記録するために使用されるログレコードの一種。デフォルトでは、MySQL は低速クエリのログを開始しません。この記事では、スロー クエリ ログを有効にする方法と、mysqldumpslow を使用してスロー クエリを分析する方法を簡単に紹介します。
スロー クエリ ログを一時的に有効にします (再起動後に失敗します)
set global slow_query_log = on;
注: スロー クエリ ログをオフにしたい場合は、set global throw_query_log = off; を実行するだけです。
一時的な低速クエリ時間のクリティカル ポイントこのクリティカル ポイントを超えるクエリ時間は、スロー クエリ ログに記録されます (再起動の失敗)
set long_query_time = 1;
低速クエリを設定しますストレージ メソッド (再起動後は無効)
set global log_output = file;
説明: ご覧のとおり、ここでファイルに設定しました。つまり、スロー クエリ ログがファイルに反映されます。デフォルトはなしです。テーブルまたはファイルに設定できます。テーブルの場合、スロークエリ情報は、mysql ライブラリの下にあるslow_logテーブルに保存されます。
show variables like '%quer%';
##パラメータの説明:
3. ログ ストレージ形式を表示します
#show variables like 'log_output';
#4. 低速ログを永続的に有効にします
Modify my.cnf in 構成ファイル my.cnf (通常は /etc/my.cnf) の [mysqld] セクションに次のパラメーターを追加します。[mysqld]slow_query_log= 1slow_query_log_file= /var/lib/mysql/slow-query.log # 若没有指定,默认名字为hostname_slow.loglong_query_time= 1log_queries_not_using_indexes= 1
#MySQL サービスを再起動します。MySQL を再起動すると、/var/lib/mysql/slow-query.log ファイルに記録されます。
3. スロー クエリ テスト
スロー クエリを作成して実行します。次のように:mysql> select sleep(1);+----------+ | sleep(1) | +----------+ | 0 | +----------+ 1 row in set (1.00 sec)
スロー クエリ ログスロー クエリ ログ ファイルを開きます。上記の遅いクエリのSQL文がログに記録されていることがわかります。
4. 遅いクエリ分析ツールmysqldumpslow
-s: Sort メソッド、値は次のとおりです
##時間順に並べ替えます。上位 5 つの SQL ステートメント
$ mysqldumpslow -s t -t 5 /var/lib/mysql/slow-query.log
$ mysqldumpslow -s t -t 3 -g "like" /var/lib/mysql/slow-query.log
SET GLOBAL slow_query_log = 'OFF'; ALTER TABLEmysql.slow_log RENAME mysql.slow_log_drop; CREATE TABLE mysql.slow_log LIKEmysql.slow_log_drop; SET GLOBAL slow_query_log = 'ON'; DROP TABLE mysql.slow_log_drop;
推荐学习:mysql视频教程
以上がMySQL スロークエリログの実践 (グラフィックとテキストの分析)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。