2013年(350)
分类: Mysql/postgreSQL
2013-04-11 16:01:06
慢查询日志指的是,所有执行时间超过long_query_time变量指定值的语句,以及达到min_examined_row_limit条记录的语句。SQL语句执行时间不包含初始化表锁的开销。SQL语句执行完毕并且完成对其锁定资源的释放后,mysqld会将符合条件的SQL语句写入慢查询日志,因此慢查询日志中语句记录和顺序有可能跟执行顺序不同(执行时间也不同)。
long_query_time参数默认值为10,单位为秒,在5.1.21版本中,最小值为0,号称记录到文件时也能够支持到微秒,不过微秒部分会被忽略,只有整数部分会记录到表,在5.1.21版本之前,该参数值必须为整数,最小值为1。
控制慢查询日志有下列方式:
如果没有为慢查询日志指定文件名,则默认文件名为host_name-slow.log,保存在目录下。
慢查询日志可以用来查看执行时间超出指定时间的SQL语句,并针对这部分语句重点调优,不过,查看一个较大的慢查询日志极为不便,可以尝试使用mysqldumpslow命令对慢查询日志进行分析,关于mysqldumpslow命令的用法可以参考相关章节。
在5.1版本中,当指定--log-queries-not-using-indexes参数后,可以把没有使用索引的查询记录到慢日志,而不管其执行速度。启用--log-slow-admin-statements选项可以记录一些操作语句到慢查询日志,比如OPTIMIZE TABLE、ANALYZE TABLE、ALTER TABLE。
需要注意的是,慢查询日志中有可能记录到与用户权限或密码相关的语句,因此慢查询日志文件的保存也要注意安全。
============================================
连载: