在进一步分析,发现 SQL 中使用的全部都是 left join,结合我们前面说的内容,left join 会在右侧数据表不存在符合条件的数据时,检索左侧表的内容,而从业务角度分析,在这个查询中,左侧表 sb_sbxx 并不会出现在不存在于其他报表的数据,因此可以使用 inner join 替换掉现有的 left join
  再进一步分析,发现 SQL 中使用的全部都是 left join,结合我们前面说的内容,left join 会在右侧数据表不存在符合条件的数据时,检索左侧表的内容,而从业务角度分析,在这个查询中,左侧表 sb_sbxx 并不会出现在不存在于其他报表的数据,因此可以使用 inner join 替换掉现有的 left join
  然后,在分析查询条件,在查询条件中存在使用子查询结果的情况,同时存在 like 条件和 or 条件,根据优化策略,我们对查询条件的顺序进行调整,将可以大量过滤数据的条件前移,将 like 条件后置,同时将涉及子查询的条件先拆分出来放置到分组条件中,对 SQL 进行优化,得到以下优化结果
  然后,再分析查询条件,在查询条件中存在使用子查询结果的情况,同时存在 like 条件和 or 条件,根据优化策略,我们对查询条件的顺序进行调整,将可以大量过滤数据的条件前移,将 like 条件后置,同时将涉及子查询的条件先拆分出来放置到分组条件中,对 SQL 进行优化,得到以下优化结果