第7章 分布式架构设计 【跨库关联查询的解决方案】

6、跨库关联查询的解决方案?

答:

         (1)大变小

不要一次性返回所有结果,采用分页方式一次返回有限小的数据,然后对关联的数据进行补填,完善相关信息后,返回数据给前端。

         (2)数据补填

数据需要返回关联信息时,可通过调用关联数据的微服务接口进行数据补填(待关联数据量要小)。

         (3)借助缓存

在调用关联数据的微服务接口时,在微服务中增加缓存的设计,补填的时候先查询缓存数据,再读数据库。

         (4)一次性调用

在补填数据时,如果逐条数据的补填,会产生多次微服务接口调用;可设计将多条记录的关联ID进行一次性远程调用,一次性查询,一次性补填。

(5)数据冗余

如果数据库采用3NF的设计思路,在进行数据查询时,会涉及到数据关系查询的问题;这时,在设计时,可适当的包含部分冗余数据,将需要用到的另一张表中部分关联查询内容包含到待查询表中,通过数据冗余设计,解决数据跨库查询的问题。

(6)使用宽表

如果查询的过滤条件很多,每次用到的查询条件都不同,查询应该针对查询库进行;同时,为了提高查询库的查询性能,需要在同步到查询库时提前完成join操作,之后将数据直接制作成单表进行分布式存储,这种设计叫“宽表”。在这样的宽表中进行单表查询,可以实现海量数据的秒级查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值