什么是慢查询
慢查询日志,就是查询慢的日志,是指mysql记录所有执行超过long_query_time参数设定的时间阀值方SQL语句的日志。该日志能为SQL语句的优化带来很好的帮助。默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先需要开启慢查询日志功能。
慢查询配置
慢查询基本配置
slow_query_log : 启动停止慢查询日志
slow_query_log_file: 指定慢查询日志的存储路径及文件(默认和数据文件放在一起)
long_query_time:指定记录慢查询日志SQL执行时间的阀值(单位:秒,默认10秒)
log_queries_not_using_indexes:是否记录未使用索引的sql
log_output:日志存放的地方(table)(file)(file,table)
配置了慢查询后,他会记录符合条件的SQL
包括:
查询SQL语句
数据修改SQL语句
已经回滚的SQL语句
show VARIABLES like ‘%slow_query_log%’
开启慢查询日志
set GLOBAL slow_query_log = 1
show VARIABLES like ‘%slow_query_log_file%’
show VARIABLES like ‘%long_query_time%’
show VARIABLES like ‘%log_queries_not_using_indexes%’
show VARIABLES like ‘log_output’
/usr/local/mysql/data/tanyuanyuan-slow.log具体内容如下:
慢查询日志解读
从慢查询日志里面摘选出一条慢查询日志,数据组成如下:
第一行:查询语句时间
第二行:用户名、用户的Ip信息、线程id号
第三行:执行花费时间
第四行:执行获得锁的时间
第五行:获得的结果行数
第六行:扫描的数据行数
第七行:这SQL执行的具体时间
第八行:具体的SQL语句