gpt4 book ai didi

mongodb - 如何在大型mongodb集合中高效查询数据?

转载 作者:IT老高 更新时间:2023-10-28 13:37:46 26 4
gpt4 key购买 nike

我有一个大的 mongodb 集合(300 万个文档,50 GB),即使我创建了索引,查询数据也会很慢。

db.collection.find({"C123":1, "C122":2})

例如即使我为 C123C122 创建了单独的索引,查询也会超时或者会非常慢(至少 10 秒)。

我应该创建更多索引还是增加物理内存来加速查询?

最佳答案

对于这样的查询,您应该创建复合索引。一个在两个领域。然后它应该非常有效。创建单独的索引对您没有多大帮助,因为 MongoDB 引擎将首先使用来获取查询第一部分的结果,但是使用第二个 if 并没有多大帮助(甚至在某些情况下会因为查找而减慢查询速度索引表,然后再次在实际数据中)。您可以通过在 shell 中的查询上使用 .explain() 来确认已使用的索引。

查看复合索引:

https://docs.mongodb.com/manual/core/index-compound/

在制作索引时还要考虑对两个字段的排序方向。

关于mongodb - 如何在大型mongodb集合中高效查询数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42293823/

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