我有一个中到大型的Mongo集合,其中包含> 100k图像的图像元数据。我为生成的每个图像生成一个UUID,并将其用作imageMeta.insert()调用中的_id字段。
我知道这些_id是唯一的,或者至少与我对UUID实现的期望一样独特,但随着集合变得越来越大,插入记录的时间越来越多也成长了。
我想确保_id字段的唯一性Mongo必须对数据库中的其他_id进行双重检查。这是如何实现的,我应该如何期望插入时间增长。到收藏规模?
答案 0 :(得分:2)
mongo中的_id
字段必须是唯一的并且已编入索引。执行插入时all indexes in the collection are updated,因此预计插入时间会随着索引和/或文档的数量而增加。也就是说,所有集合都至少有一个索引(在_id
字段上),但您可能已经在经常查询的字段上创建索引,并且这些索引也会在每次插入时更新(增加延迟)。
减少感知数据库延迟的一种方法是为驱动程序指定write concern。请注意,2012年11月之前的默认写入问题是“未确认”,但此后一直是changed to 'acknowledged'。