SQL优化
1、多用简单SQL
2、少用子查询和复杂查询
3、少用复杂join,并注意join驱动表是否最优
4、where条件中不使用函数,避免无法使用索引
5、注意类型隐式转换
6、事务快速提交,不要频繁反复提交
JOIN优化
1、把结果集小的表作为驱动表,减少nested-loop循环次数
2、优先优化nested-loop的内层循环效率
3、保证被驱动表与驱动表的join条件字段有索引
4、当被驱动表的join条件字段被索引,且内存资源充足时,适当加大join buffer大小
无法使用索引的场景
1、通过索引扫描记录数超过30%,变成全表扫描
2、联合索引中,第一个索引列使用范围查找
3、联合索引中,第一个查询条件不是最左索引
4、模糊查询条件最左通配符%开始
5、索引字段发生隐式类型转换
6、索引字段上使用函数,索引不生效