Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 找到下一个“;“老年人”;文件(性能)_Performance_Mongodb_Limit - Fatal编程技术网

Performance 找到下一个“;“老年人”;文件(性能)

Performance 找到下一个“;“老年人”;文件(性能),performance,mongodb,limit,Performance,Mongodb,Limit,我有一组帖子(请参阅伪json:-): 我在“2012-10-04”帖子页面,我想知道是否有旧帖子,只是为了显示“下一页”按钮 我可以考虑这样一个问题: db.posts.find({"created":{$lt:ISODate("2012-10-04")} }).limit(1); 我还得试试,但我想它会有用的。。。其实我的问题是: 它的性能怎么样?它是否会与集合中的数十亿文档以相同的速度运行?前提是在“已创建”上有一个索引,假设您将根据需要分割数十亿个集合,该索引的伸缩性应该相对较好。无论

我有一组帖子(请参阅伪json:-):

我在“2012-10-04”帖子页面,我想知道是否有旧帖子,只是为了显示“下一页”按钮

我可以考虑这样一个问题:

db.posts.find({"created":{$lt:ISODate("2012-10-04")} }).limit(1);
我还得试试,但我想它会有用的。。。其实我的问题是:


它的性能怎么样?它是否会与集合中的数十亿文档以相同的速度运行?

前提是在“已创建”上有一个索引,假设您将根据需要分割数十亿个集合,该索引的伸缩性应该相对较好。无论您执行什么类型的查询,在较大的数据集上,无论是否使用索引,它们都将花费更长的时间。只是b-树遍历的性能配置文件明显优于原始表扫描

您的查询是一个开放式范围查询,实际上在您的情况下非常理想,因为如果它发现任何早于指定日期的文档,它可以返回


简言之,是的,这将充分发挥作用,并将通过切分进行扩展。

好的,我相信你!显然,我的应用程序是一个博客,所以现在我没有数十亿的帖子:-P。。。首先,我认为一个MR是必要的。我会按日期对帖子进行分组,然后使用MR结果进行分页。但可能是杀伤力太大了。如果您的页面有确切数量的文档,您也可以简单地执行morePages=currentPagedb.posts.find({"created":{$lt:ISODate("2012-10-04")} }).limit(1);