MySQL如何进行调优
MySQL如何进行调优
- 背景
- 联想
- 优化方案
- 常见的索引失效场景
- 总结
背景
有辞职跑路了, 找工作一次比一次难, 面试基本也会问到这个问题, 总结一下吧.
联想
1.数据结构
2.服务器优化
3.索引优化
优化方案
1.禁止 select *
3.尽量走覆盖索引. 避免索引失效.
4.order by 分组字段也要建立索引.
2.条件查询 in 查询, 如果数据量很多也可以回全表扫描. 可以优化为连接查询.
5.尽量不要关联很多表去查询. 从业务设计角度去解耦和拆分.
常见的索引失效场景
1.like模糊查询, 百分号在前面
5.where条件中有表示否定的条件, 比如: is not null, != 这些.
2.使用一些内置函数或自定义函数
3.隐式的类型转换, 比如: int 类型被加了 引号
4.未遵循最左前缀法则. 比如: 索引是 abc, 查询的是: abd
6.索引列NULL值的影响, 如果索引列大量存在NULL值, 可能会降低索引效率.
总结
是否用到了合适的索引去看执行计划. expain