

















这是一个创建于 1066 天前的主题,其中的信息可能已经有所发展或是发生改变。
比如,为了避免 big key 问题将 zset 拆分成 zset1 、zset2 、zset3 ,如果要对这个 zset 做分页查询的话,怎么处理呢?
第一页是很容易的,比如一页 10 条,每一个 zset 都查出 top 10 然后合并排序一下即可
但是第二页和第三页却不能这么处理,因为直接从各个 zset 中获取排名 10 到 20 的 value ,来做排序合并得到的结果并不准确
能想到的一个方案是把所有的 zset 都合并成一个总的 zset 再来分页切割,但是感觉这样太耗费性能了,不是一个好的方案。
1 hangszhang 2023 年 6 月 25 日类似分库分表之后的分页问题,感觉得来个二级索引了 |
2 SakuraSa 2023 年 6 月 25 日每次查询上一页最后一个 item 的 score 之后的 10 个 item |
3 tf2 2023 年 6 月 25 日如果你要做分页,已经输了一半了。 |
5 leogm9408leo 2023 年 6 月 25 日参考 elasticsearch 的分片处理逻辑,查 top10 就是每个分片取各自的 top10 然后再合并后取 top10 ,取 10-20 也还是每个分片各取 top20 然后合并后取出 10-20 ,这是搜索上的经典问题“深分页问题”,所以搜索引擎都不会允许访问分页太深。 |
7 ben548OP @leogm9408leo 查 90-100 条,有 200 个分片的话,就要查出 20000 条数据出来排序后再分页,这有点伤啊 |
11 Dlin 2023 年 6 月 25 日不知是不是我没看懂,我感觉除了全局视野法和业务折衷法之模糊法没问题外,其他两种问题都有问题,都需要前提条件:数据被排序的字段均匀分布且不可重复 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。