1 列举场景
有些sql业务比较复杂,需要关联多张表,使用了一些复杂的函数、子查询等,项目初期由于数据量少,不会对数据库造成太大的压力。
随着时间的积累以及业务的高速发展,这些sql慢慢变成了慢sql。
对于这样的sql,先熟悉业务场景,梳理关联关系,将sql拆解为多个简单的sql,在内存中处理数据关联关系
sql优化
1 复杂sql拆分成简单sql再在内存中处理数据关联关系
2 排序逻辑放在内存中处理
3 使用explain分析然后加索引,查询语句注意索引失效场景
4 避免深分页查询,先查询除主键id范围,再使用in条件查询,使用到覆盖索引,覆盖索引上有所有字段,不用再回表