您的位置:首页 > 其它

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

2017-03-20 11:29 1346 查看
业界难题-“跨库分页”的四种方案

—— 转自微信公众号”架构师之路”,58沈剑

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

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

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

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

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

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

另一个不错的方法:

3.在某个单库中建立一个全局视野表,该表拥有所有记录的id和排序所需字段,分页查询先查此表,获得需要的id,再分散至各库查询。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息