首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当处理重复查询时,MongoDB会变得更快

当处理重复查询时,MongoDB会变得更快
EN

Stack Overflow用户
提问于 2017-08-16 18:13:05
回答 1查看 262关注 0票数 3

我正在用MongoDB开发一个web应用程序。我注意到一种现象,当重复执行相同的查询时,处理速度会提高,最后会在某个点收敛。与查询集合中的所有文档一样,每次查询的时间将为100000 ms -> 20000 ms -> 9000 ms -> . -> 500 ms

我想知道提速背后的原因是什么?以及如何估计收敛点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-17 08:10:17

有很多原因,我可以说几点。

首先,MongoDB能够为您的查询选择最佳索引。为此,MongoDB使用查询计划。但是这个操作需要时间:

如果没有匹配的条目,查询规划器将生成候选计划,以便在试用期间进行评估。查询计划器选择一个获胜计划,创建一个包含获奖计划的缓存条目,并使用该条目生成结果文档。

https://docs.mongodb.com/manual/core/query-plans/

索引应该加载到内存中,以加快性能,这也需要时间。试着看看触觉:

https://docs.mongodb.com/manual/reference/command/touch/

触摸命令将数据从数据存储层加载到存储器中。触摸可以加载数据(即文档)索引,或者同时加载文档和索引。

的另一个原因是,索引不适合内存,以便知道是否是您的情况--也许您可以使用totalIndexSize进行检查

https://docs.mongodb.com/manual/reference/method/db.collection.totalIndexSize/#db.collection.totalIndexSize

我更专注于改进查询计划器方面,因为MongoDB并不总是为您做出最好的决定。

在我看来,所有这些问题都应该仔细评估,以避免性能下降。

祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45720415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档