読者です 読者をやめる 読者になる 読者になる

reizist's blog

ウェブ

RDSでslow logが出力されない件

結論

log_output = TABLE になっているから。 log_output = FILE にすればファイル出力される。

詳細

aws parameter groupsで指定するmysql parametersの log_output = TABLE 状態になっていることを確認した。 この場合、ログはファイルにではなくTABLE mysql.slow_log に格納される。

mysql> select * from mysql.slow_log order by start_time desc limit 10;
+---------------------+-----------+------------+-----------+-----------+---------------+-------+----------------+-----------+-----------+--------------------------------------------------------------+-----------+
| start_time          | user_host | query_time | lock_time | rows_sent | rows_examined | db    | last_insert_id | insert_id | server_id | sql_text                                                     | thread_id |
+---------------------+-----------+------------+-----------+-----------+---------------+-------+----------------+-----------+-----------+--------------------------------------------------------------+-----------+
| 2017-03-22 10:43:54 | [] @  []  | 00:00:00   | 00:00:00  |         1 |             1 | hogehoge |              0 |         0 | 794362535 | throttle:        755 'index not used' warning(s) suppressed. |     96738 |
| 2017-03-22 10:42:54 | [] @  []  | 00:00:00   | 00:00:00  |         1 |           178 | hogehoge |              0 |         0 | 794362535 | throttle:        757 'index not used' warning(s) suppressed. |     96738 |
| 2017-03-22 10:41:54 | [] @  []  | 00:00:00   | 00:00:00  |         0 |             0 | hoge |              0 |         0 | 794362535 | throttle:        759 'index not used' warning(s) suppressed. |     96738 |
| 2017-03-22 10:40:54 | [] @  []  | 00:00:00   | 00:00:00  |         1 |           178 | hoge |              0 |         0 | 794362535 | throttle:        768 'index not used' warning(s) suppressed. |     96738 |
| 2017-03-22 10:39:54 | [] @  []  | 00:00:00   | 00:00:00  |        24 |            24 | hoge |              0 |         0 | 794362535 | throttle:        757 'index not used' warning(s) suppressed. |     96738 |
| 2017-03-22 10:38:54 | [] @  []  | 00:00:00   | 00:00:00  |         1 |           178 | hoge |              0 |         0 | 794362535 | throttle:        762 'index not used' warning(s) suppressed. |     96738 |
| 2017-03-22 10:37:54 | [] @  []  | 00:00:00   | 00:00:00  |         1 |           178 | hoge |              0 |         0 | 794362535 | throttle:        771 'index not used' warning(s) suppressed. |     96738 |
| 2017-03-22 10:36:54 | [] @  []  | 00:00:00   | 00:00:00  |         1 |             1 | hoge |              0 |         0 | 794362535 | throttle:        758 'index not used' warning(s) suppressed. |     96738 |
| 2017-03-22 10:35:54 | [] @  []  | 00:00:00   | 00:00:00  |         1 |           178 | hoge |              0 |         0 | 794362535 | throttle:        757 'index not used' warning(s) suppressed. |     96738 |
| 2017-03-22 10:34:54 | [] @  []  | 00:00:00   | 00:00:00  |         1 |             1 | hoge |              0 |         0 | 794362535 | throttle:        755 'index not used' warning(s) suppressed. |     96738 |
+---------------------+-----------+------------+-----------+-----------+---------------+-------+----------------+-----------+-----------+--------------------------------------------------------------+-----------+
10 rows in set (0.01 sec)

尚上記の throttle: ..... index not used .... がうざい場合、

log_throttle_queries_not_using_indexes , log_queries_not_using_indexes のパラメータを変更する。

ちゃんとテーブルに格納されていることがわかる。 log_outputFILE に変更することでファイル出力されるようになる。

補足

  • RDSの場合(通常のmysqlと違い) log_output に複数のパラメータを指定できず、代わりに log_output = FILE の場合ファイルとテーブルに出力されるようになっている。なおデフォルトはTABLE。

参考: