MySQL慢查询优化
1.根据慢日志定位慢查询sql
检查慢日志是否开启
SHOW VARIABLES LIKE ‘%query%’; # 查询慢日志相关信息
slow_query_log 默认是off关闭的,使用时,需要改为on 打开
slow_query_log_file 记录的是慢日志的记录文件
long_query_time 默认是10秒,每次执行的sql达到这个时长,就会被记录
SHOW STATUS LIKE ‘%slow_queries%’; 查看慢查询状态
如何打开慢查询 : SET GLOBAL slow_query_log = ON;
将默认时间改为2秒: SET long_query_time = 2;
2.通过explain语句分析慢查询sql
案例:explain select * from wp_posts where id = 1;
用type字段来定位性能级别,常用的类型有:
ALL、index、range、 ref、eq_ref、const、system、NULL(从左到右,性能从差到好)
例如all为最差,MySQL将遍历全表以找到匹配的行
const、system、null属于高性能
参考:https://www.cnblogs.com/tufujie/p/9413852.html
3.修改sql或者尽量让sql经过索引查找
4.利用数据库工具进行分析,例如heidisql里面有一个“查询分析”的选项,选中后进行查询,会出现很多参数,例如opening tables打开表, closing tables关闭表, execting执行时间,这些参数可以看到用了多少时间,然后定位指定参数进行优化
上一页: 脏读、幻读、不可重复读的区别是什么下一页: Redis中内存溢出问题
发表回复