MySQL スロークエリを設定する

  • 作成日 2021.12.18
  • 更新日 2022.10.20
  • mysql
MySQL スロークエリを設定する

MySQLで、スロークエリを設定する手順を記述してます。

環境

  • OS ubuntu21.10
  • MySQL Ver 8.0.27-0ubuntu0.21.10.1 for Linux on x86_64 ((Ubuntu))
  • MySQL Workbench 8.0.27

手順

スロークエリを設定する場合は、「mysqld.cnf」を編集して設定します。

編集します。

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

コメントアウトされている以下の箇所のコメントアウトを外します。
※ slow_query_log_file は ログが書き出される場所で、long_query_timeはクエリタイムがこの数値を超えたらログを出力します。ここでは、2秒に設定します。

slow_query_log                = 1
slow_query_log_file   = /var/log/mysql/mysql-slow.log
long_query_time = 2

再起動して反映させます。

sudo systemctl restart mysql

これで、2秒以上のクエリが流れると「/var/log/mysql/mysql-slow.log」にlogが書き出されます。

# Time: 2021-12-17T06:19:27.521812Z
# User@Host: testuser[testuser] @  [192.168.1.10]  Id:     8
# Query_time: 321.628671  Lock_time: 0.000391 Rows_sent: 0  Rows_examined: 0
use foo;
SET timestamp=1639721967;
call loop_sample(100000);
# Time: 2021-12-17T06:58:43.118488Z
# User@Host: testuser[testuser] @  [192.168.1.15]  Id:     8
# Query_time: 1618.342517  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 0
SET timestamp=1639724323;
call loop_sample(500000);