多表联合查询,并且分页优化

假设有6张表,表A是主业务表,另外5张含有需要共同展示的信息,联合查询并且分页,当数据量大时会同时锁定6张表,造成服务挂起,请问有什么优化办法?
sql应该啊怎么写比较好
(假设不能在A表加冗余字段)
谢谢

2个回答

先说这个假设在现实中根本不该存在...
我想如果真有这种情况,我会选择在service层中分5次,根据A表的信息对其他5张表进行单次查询,然后在service层进行合并数据

sunstubble
sunstubble 如果筛选条件在其他表里你这个先分页就不行了
3 个月之前 回复
sunstubble
sunstubble 谢谢,其实就是想问MySql的多表分页优化
3 个月之前 回复

因为不知道你的数据量,但是一般的套路如下:
1)首先查询条件必须都要能够用到索引,表关联也需要使用索引,几百万的数据量问题不大
2)第二,需要从业务上规避,查询条件不要包含从表的字段,主表分页查询后,再关联其他表获取其他的信息,在后台组装后返回。
3)进一步优化,业务必须要一些模糊查询或者其他无法使用索引的字段查询,单纯的sql已经帮不了你了,选择ES或solr吧

guangcaiwudong
Kevin.Y.K 回复sunstubble: 说的就是多表分页优化,归根到底就是想方设法用索引,拒绝全表扫描
3 个月之前 回复
sunstubble
sunstubble 谢谢,其实就是想问MySql的多表分页优化
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问