MongoDB的性能在一系列值中以键查找文档

MongoDB performance on finding documents with key in a range of values

本文关键字:查找 文档 性能 一系列 MongoDB      更新时间:2023-10-16

假设数据库'testDB'具有'testCollection'。在此集合中,有一个密钥" TestField"。此集合包含数十亿个文档

找到密钥" testfield"的确切值,即使是数十亿个文档,索引也基于radix树(可能是?)。

。 。
model.find({
  testfield: "some-value"
})

但是,当找到一系列值时,它仍然很快与这数十亿个文档有关吗?

model.find({
  testfield:{
    $gte: "some-lower-value",
    $lte: "some-upper-value"
  }
})

peterson在下面的评论中:

所有这些都取决于确切的键索引排序。反过来取决于 构造数据库时的设置和配置(可以是 事实也发生了变化)。如果是测试场的排序列表 值,那么它应该相对较快[假设上下 限制相对较近,显然,如果您的范围很广,则 DB的很大一部分被发送给您的方式,这可能需要一些时间]

查找范围的时间也很快,但基于值的范围。

较低的值和上值可以立即在〜log(n)中找到,就像找到确切的值一样。由于索引应为键的分类值列表,因此输出时间取决于循环以从下值提取所有条目至上值。