已知如下sql语句:
select * from a left join b on a.id=b.id
where a.x=1 and b.y=2;
这是个很常见的在db层连表查询,但如果db层不允许连表查询操作下,只能通过分别查询单表的方式进行查询,查询结果到达service层进行组合。
已知a,b表的数据量都较大,有没有较好的解决方案。
梳理:
1.不能在db层进行连表查询。
2.两表都有查询条件
3.查询结果需要两表数据组合
4.两表数据量都较大
已知如下sql语句:
select * from a left join b on a.id=b.id
where a.x=1 and b.y=2;
这是个很常见的在db层连表查询,但如果db层不允许连表查询操作下,只能通过分别查询单表的方式进行查询,查询结果到达service层进行组合。
已知a,b表的数据量都较大,有没有较好的解决方案。
梳理:
1.不能在db层进行连表查询。
2.两表都有查询条件
3.查询结果需要两表数据组合
4.两表数据量都较大
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
1:根据查询字段,添加合适的索引
2:在有效使用索引的情况下,查出a表的数据,然后再根据a表查出的数据去b表中批量获取数据,如果a查出的数据量很多,可以分批批量去查。