MySQL 調整

昨天晚上幫「測試」,發現速度卡在 的 CPU bound,先用 丟在背景跑,再用 抓幾個比較明顯的 slow query,補了幾刀 INDEX 後,速度快了不少,不過還是不太滿意。

印象中 MySQL 除了可以紀錄 slow query 外,還可以紀錄沒用到 INDEX 的 SQL query,花了不少時間才找到。這些指令是可以線上改,不需要重開 (如果你堅持要改設定檔重開也 ok),不過請不要在 production 的機器上開,以免 SQL query 寫的很爛,產生大量的 log:

mysql> SET GLOBAL log_queries_not_using_indexes = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL slow_query_log = 1;
Query OK, 0 rows affected (0.00 sec)

參考:

PS:這只是告訴你問題在哪裡,而非解決的方法。要知道為什麼會慢,你需要讀不少資料,像是 這類的書籍,以及網路上 MySQL 資料庫長輩們的討論。

Update:翻到 這篇,可以檢查過度 index 時造成效能降低的問題 :p

2 thoughts on “MySQL 調整”

Leave a Reply

Your email address will not be published. Required fields are marked *