简介
慢查询定义为运行时间超过long_query_time的查询,默认为10秒。
默认情况下,仅记录非管理语句以及使用索引的查询。在日志中包含没有索引的查询(无论花费多少时间)都特别有用,并且使用log_queries_not_using_indexes设置进行设置。将不记录对包含0行或1行的表的查询。
该日志包含执行时间超过long_query_time秒的SQL查询,默认为10秒,以及必须检查超过min_examined_row_limit行的查询。获取锁的时间不包括在此计算中,只有解决查询的时间。
开启方式
写在配置文件中
在配置文件/etc/my.cnf中添加
slow_query_log=ON #开启慢查询日志
slow_query_log_file=slow_query.log #慢查询日志文件名
在MySQL内部启动
下面2种方式都可以打开
mysql> set @@global.slow_query_log=on;
mysql> set global slow_query_log=on;
查看
慢查询日志是是文本格式的,所以可以用tail,head,vim,cat等文本编辑工具查看。也可以用mysqldumpslow工具通过汇总信息来简化该过程。
当然了也可以在mysql内部查看,方法如下
mysql> SELECT * FROM mysql.slow_log \G
相关的常用变量
- log_slow_queries={ON|OFF}
不推荐使用–log-slow-queries选项,并在MySQL 5.6中删除它(以及log_slow_queries系统变量)。
而是使用–slow_query_log选项启用慢查询日志,使用–slow_query_log_file = file_name选项设置慢查询日志文件名。 - slow_query_log={ON|OFF}
开启慢查询日志 - slow_query_log_file=
慢查询日志文件名 - log_output={FILE|TABLE|NONE}
存储在文件/表/NONE中 - log_slow_filter=admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
慢查询日志过滤的类型