株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

スロークエリログはSQLの実行に時間がかかったクエリをログ出力できるよ。
ログを出力するということはI/Oが増加するが、細かなデバッグがしやすくなるよ。
わりと構築中はONにしておいて、トラブルシュートし、それが解消したらOFFにするのが王道らしい。

my.cnfか、my.cnf.d内のファイルに記載する
以下は0.5秒以上SQLの実行に時間を要した場合出力される

[root@db01 ~]# cat /etc/my.cnf | grep slow_query_log
[root@db01 ~]# cat /etc/my.cnf.d/myopt.cnf | grep slow_query_log
slow_query_log = ON
long_query_time=0.5

DBにログインし、見てみる

mysql> show variables like 'slow%';
+---------------------+-------------------------------------------+
| Variable_name       | Value                                     |
+---------------------+-------------------------------------------+
| slow_launch_time    | 2                                         |
| slow_query_log      | ON                                        |
| slow_query_log_file | /var/lib/mysql/db01-slow.log              |
+---------------------+-------------------------------------------+

<スポンサーリンク>

2 Comments

2 Records

  1. on 2018年11月29日 at 9:35 PM
    たに wrote:

    遅いSQLが発生した場合、そのSQLの前に、EXPLAINを付けると、SQLの実行計画が表示され、どのように実行されているか、見ることができます。
    遅いSQLを、どう改善すればいいかの答えは教えてくれないですが、どう改善するかの参考になるかと思います。

    返信
    • on 2018年12月5日 at 1:13 PM
      yuta wrote:

      そんなことができるのですね、ありがとうございます!
      ちょっと試してみます!

      返信

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)