2014年11月27日 星期四

[MySQL]log_queries_not_using_indexes與slow_query_log同時啟用會造成大量的slow query log

        話說管理的MySQL有啟用slow_query_log,然後發現每天的成長量非常的大 ,每天增加1G吧,量太大了對於分析slow query非常耗時,仔細分析又發現幾乎所有的Query紀錄進去了 ,這不太對啊,log_query_time設1秒,照理說超過1秒才會記錄,但幾乎全紀錄,毫秒微秒級的也記錄作什,看avg、95%跟前五名的都是毫秒級回應,收到這種分析幾乎沒什用


        我自己測試機上怎麼試都不會這樣啊,後來比對system variable才找到原因,原來是log_queries_not_using_indexes與slow_query_log同時啟用了

        根據5.1.3 Server Command Options的說明,截圖如下,意思就是兩個同時啟用,會記錄取回所有資料列的查詢,意思應該是沒加limit的查詢全紀錄囉


        我就用下列命令關了它,保留slow_query_log而已,然後my.cnf也註解掉囉

set global log_queries_not_using_indexes = 'off';
        紀錄就正常啦!

0 意見:

張貼留言