1. 根据慢日志定位慢查询SQL
- 根据慢日志定位慢查询SQL
- 使用explain等工具分析SQL
- 修改SQL让SQL尽量走索引
-
变量
-
SHOW VARIABLES like '%query%'; -- 查看慢查询的相关变量 -- 在重启数据库服务的时候会还原为原本的配置,如果需要永久改变就直接改数据库配置文件 -- 开启慢查询 SET GLOBAL slow_query_log = on; -- 超时时间设置为1s SET GLOBAL long_query_time = 1; -- 需要重新连接数据库才能看到改变
-
SHOW STATUS LIKE '%Slow_queries%'; -- 查看本次会话慢查询的条数(关闭客户端之后,就会自动清零)
-
参考链接: https://www.cnblogs.com/tufujie/p/9413852.html
-
explain
-
-- 在慢查询SQL前加explain再执行,即可得到分析结果 EXPLAIN SELECt * FROM visit_log ORDER BY uuid DESC
-
type
- all、index、range、 ref、eq_ref、const、system、NULL(从左到右,性能从差到好)
- 出现all和index就说明很有可能需要优化
- all、index、range、 ref、eq_ref、const、system、NULL(从左到右,性能从差到好)
-
extra
- 一般出现下面两种需要调优
- Using filesort:表示 MySQL 会对结果使用一个外部索引排序,而不是从表里按索引次序读到相关内容。可能在内存或者磁盘上进行排序。MySQL中无法利用索引完成的排序操作称为"文件排序”
- Using temporary:表示 MySQL在对查询结果排序时使用临时表。常见于排序order by和分组查询groupby.
- 一般出现下面两种需要调优
-
-
-- 换一个有索引的字段 -- 加索引, alter table [表名] add index idx_name([字段名]);
个人博客:txyun5.linshiyou.cn



