gpt4 book ai didi

MongoDB 在处理重复查询时变得更快

转载 作者:可可西里 更新时间:2023-11-01 09:48:14 25 4
gpt4 key购买 nike

我正在使用 MongoDB 开发 Web 应用程序。我注意到一个现象,当重复执行相同的查询时,处理速度提升并最终在某一点收敛。就像查询集合中的所有文档时,每个查询的时间使用量将是 100000 ms -> 20000 ms -> 9000ms -> ... -> 500 ms

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

最佳答案

原因有很多,我可以给点意见。

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

If there are no matching entries, the query planner generates candidate plans for evaluation over a trial period. The query planner chooses a winning plan, creates a cache entry containing the winning plan, and uses it to generate the result documents.

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

INDEX 应该加载到内存 为了加快性能,这也是需要时间的。尝试查看 Touch:

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

The touch command loads data from the data storage layer into memory. touch can load the data (i.e. documents) indexes or both documents and indexes.

另一个原因,INDEX 不适合内存 为了知道这是否是您的情况,也许您可​​以检查 totalIndexSize

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

我更专注于改进查询规划器方面,因为 MongoDB 不会一直为您做出最佳决策。

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

祝你好运!

关于MongoDB 在处理重复查询时变得更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45720415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com