【发布时间】:2011-03-06 03:13:05
【问题描述】:
我在使用 CouchDB 进行分页时看到的大多数研究表明,您需要做的是从您的视图中获取前十个(或多个)项目,然后记录最后一个文档的 docid 并将其传递给下一个页。不幸的是,我发现该方法存在一些明显的问题。
- 这显然使得在一组页面内跳转是不可能的(如果有人直接跳转到第 100 页,您必须运行第 2-99 页的查询,以便知道如何加载第 100 页)。李>
- 它要求您在页面之间传递可能的大量状态信息。
- 很难正确编码。
不幸的是,my research 表明,使用skip 会显着降低 5000 条或更大的数据集的速度,并且一旦您达到非常大的数据集(进入 20000 页,每页有 10 条记录大约需要大约20 秒 - 是的,生产中的数据集很大)。所以这不是一个真正的选择。
那么,我要问的是,是否有一种有效的方法可以在 CouchDB 中对视图结果进行分页,可以从任意页面获取所有项目? (我使用的是couchdb-python,但希望没有任何依赖于客户端的内容。)
【问题讨论】:
标签: python pagination couchdb