前言
在实际应用中, 为了降低单表的数据量, 会对较大的表进行水平切分, 将单表的数据切分到多表多库中.
既然要切分, 就要有一个切分的依据, 比如说按照 ID 取模等....按照 ID 取模分到了两个表中.
user_article_1 user_article_0
现在有这样一个需求:
按照文章的发表时间进行排序分页
单表
先来看在单表的时候, 我们是如何查询的, 之后再扩展到多表...比如, 上一次查询, 最后一条数据是8, 那么, 下一次查询从各个列表中取出大于8的10条数据, 内存排序后取前10条, 同时将最后一条的值存下来供下一次查询使用....因为我们不知道全局偏移量4在各个数组中的各自偏移量. 所以在方案一中需要进行大量的查询, 如果我们知道了, 问题不就解决了么....应该是有对顺序精度没什么要求的场景吧. 想到了这种方案, 但是暂时没有想到应用场景.
如果是针对分表字段排序的话, 那么数据分布均匀, 此方案完美.
最后
具体业务应该如何选择分页方式呢?