天天看点

浅谈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的文章