直接上总结图:
MySQL调优与实操
SQL调优
适用于数据量较大的情况下
explain 可以通过explain关键字来分析SQL执行计划,然后进行适当的分析调优。
慢查询日志 永久生效
避免不走索引
1、尽量避免在字段开头模糊查询
2、尽量避免使用in 和 not in
3. 尽量避免进行 null 值的判断
优化方式:
如果需求是要在前面使用模糊查询,使用
MySQL内置函数INSTR(str,substr) 来匹配
优化方式:
如果是连续数值,可以用 >= 和 <= 代替。
如果是子查询,可以用 exists 代替。
4. 尽量避免使用 or
5. 尽量避免在 where 条件中等号的左侧进行表达式、函数操作
6. 当数据量大时,避免使用 where 1=1 的条件
7. 查询条件不能用 <> 或者 !=
8. where 条件仅包含复合索引非前置列
9.隐式类型转换造成不使用索引
10.order by 条件要与 where 中条件一致,否则 order by 不会利用索引进行排序
SELECT语句其他优化
1. 避免出现 select *
2.避免出现不确定结果的函数
使用 select * 取出全部列,会让优化器无法完成索引覆盖
扫描这类优化,会影响优化器对执行计划的选择,也会增加