【发布时间】:2021-10-20 17:01:32
【问题描述】:
我观察到当我在字段名称中有一些拼写错误时,mongodb 查询的运行时间要长得多。 所以我的问题是:
- mongo 中的文档如何存储在内存中(读取后) - 作为哈希表或链表?
- 当查询只需要第一个字段时,是否可能没有完整读取文档(从头到尾)?例如 col.find({some_field: "asdf"}, {some_field: 1}) 只能从 bson 文件中读取这一字段并跳过读取其余字段(以防文档非常大)。如果是这样,那么字段名称中的拼写错误会强制 mongo 读取整个 bson 并增加 collscan 的时间。
我知道在这种情况下索引会发生很大变化,所以我们假设集合中没有任何索引。
【问题讨论】: