我到处查找 ObjectId,好像它们是蛋糕一样。
这个可以吗?_id
字段应该被疯狂地查找,对吧?
更准确的答案:MongoDB 使用 B-Tree 索引。在 B-Tree 中搜索特定值在平均和最坏情况下具有 O(log n) 复杂度,这可以被认为是相当快的(即二进制搜索)。虽然它不是恒定的复杂性 = O(1),所以如果索引大小增长大于可用 RAM,您仍然可能会产生一些减速效果。(MongoDB 尝试将索引保存在 RAM 中,并且在磁盘上查找索引所需的每个 IO 都会大大减慢您的查询速度)。
_id 是主键。它已编入索引。当然很快。
ObjectIds
,如果您的主要数据访问方法,将是从 MongoDB 检索您的资料的最快方法。我们利用 MongoDB 作为大部分数据访问的密钥存储库。做你正在做的事,你会有很好的结果。
_id 字段的索引由 mongo 和默认主键自动创建。Speedwise,通过 _id 字段访问文档将非常快。
你有什么顾虑?