开发篇:解决查询时间慢-left join 表数据量大

解决查询时间慢-left join 表数据量大

  • 场景
  • 分析
  • 解决方案

场景

用户需要分页查询数据量大的信息,查询时间慢

分析

查看sql

select a.*,b.*
from A a
left join B b
on a.id = b.aId
limit(curPage-1)*pageSize,pageSize;

分析发现A表和B表数据量都比较大,关联查询比较慢。那就分而治之,两个表关联查询换成单独查,而且是分页查询,查询第二张表数据的数据量只有一页的数量。

解决方案

1.先分页查询主表A数据

select a.*
from A a
limit(curPage-1)*pageSize,pageSize;

2.查询当前页A表数据后,根据a.id集合查询表B相关内容

select b.*
from B b
where b.aId in(...)

你可能感兴趣的:(开发篇)