业界难题-“跨库分页”的四种方案

业界难题-“跨库分页”的四种方案
—— 转自微信公众号”架构师之路”,58沈剑

分库可分为“垂直拆分”和“水平拆分”,这篇文章讲的是水平分库后的分页解决方法。

问题的关键在于分页所需的offset和limit是需要全局视野的,水平分库后记录被分散在不同的库中,在单一库下就失去了全局视野。

最显而易见的方法就是就是在单一库下获取全部数据,再在server端整合,这样在server端就拥有了全局视野。该方式也满足业务需求,但不满足性能要求。

“任何脱离业务的架构设计都是耍流氓”,通过业务折衷简化技术方案:

  • 1.可禁止跳页查询,只允许查询下一页。因为下一页的数据依赖于上一页,所以在单一库中就不必在获取全部数据,极大提升性能。

  • 2.利用概率统计特性,进行非精准查询

另一个不错的方法:

  • 3.在某个单库中建立一个全局视野表,该表拥有所有记录的id和排序所需字段,分页查询先查此表,获得需要的id,再分散至各库查询。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值