天天看點

淺談mysql慢查詢和msl更新檔(microslow patch)

mysql(包括所有5.*系列,5.1.21之前)的慢查詢日志預設是以秒為機關的,可以通過set [session|global] long_query_time=1這個最低也就是可以設定到1秒,對于0.5,0.005之類就無能為力了,這時候可以有microslow patch(msl patch)更新檔來完成這一工作,這個功能的好處自然不言而喻.

在mysql5.1.21及以後版本可以通過 set [session|global] long_query_time=0.01等來設定記錄0.01秒以上的sql語句.

在 5.1.6之後系列産品中還有--log-output=[FILE|TABLE|NONE]特性,這個是選擇 general_log和slow_log的存儲方式,檔案,資料表,還是不記錄,5.1.6-5.1.20預設是資料表(mysql.slow_log 表),其餘預設是檔案.

--log-queries-not-using-indexes也是5.1的新選項,可以沒有使 用index的sql語句記錄到慢查詢日志中

--log-slow-admin-statements該命 令選項可以将OPTIMIZE TABLE, ANALYZE TABLE, 以及ALTER TABLE 等管理操作寫道慢查詢日志中.

在5.0系列産品可以通過安裝 microslow patch(msl patch)來改進慢查詢日志.

這些選項可以加在啟動指令上也可 以記錄在my.cnf裡面

至于檢視日志,可以直接檢視也可以使用工具,對于比較多的日志還是日志友善些.常 見的工具有mysql自帶的mysqldumpslow以及第三方工具mysqlsla等.

msl patch是通過修改mysql源代碼的方式來增強mysql的功能,是以隻能是源碼安裝才可以擴充這個功能,其在www.mysqlperformanceblog.com上 有詳細介紹(其實英語很簡單,嘿嘿)

下面是幾個關于microslow patch的文章