第一步: 定位待优化语句的位置
第二步:排查能否在业务逻辑上进行优化
如果是因为,业务逻辑实现的复杂了,比如实现这个业务逻辑,可能只需要查一个表就可以搞定,又或者,可能只需要查某个表中的一个字段就能实现,而不需要将全部数据查出来。
第三步:如果在业务逻辑上无法进行优化了,那么可以考虑常用的sql优化策略
- 千万不要循环查表。在for循环中尽量不要使用查询sql的逻辑,减少对数据库的交互次数
- 如果where 条件中没有添加索引,可以考虑添加索引
- 使用 exists替代 in,用 NOT EXISTS 替代 NO
- 避免在索引列上使用计算
- 避免在索引列上使用 IS NULL 和 IS NOT NULL,否则可能会导致数据库引擎放弃使用索引,而进行全表扫描