MongoDB - 将频繁更新的字段移动到不同的集合是否有任何优势?

时间:2016-02-12 00:54:40

标签: mongodb nosql

我是 MongoDB 面向文档的数据库的新手,当我将关系数据库迁移到存储问题的全新概念时:< / p>

  • 在关系数据库中,创建一个新表以存储经常更新的字段通常是个好主意(假设您有一个user's table和一个last_activity)慢写操作不会锁定其他表。

MongoDB 中做同样的事情是否有任何优势,因为读取操作似乎非常高效,并且执行两个查询不是一个大问题? 提前谢谢大家。

2 个答案:

答案 0 :(得分:1)

如果您使用默认存储引擎MMAPv1,那么您具有集合级并发性,为频繁更新的字段创建新集合可能会有所帮助。

但是,WiredTiger存储引擎具有文档级并发性,无需创建其他表。 https://docs.mongodb.org/v3.0/core/wiredtiger/

答案 1 :(得分:1)

从版本mongodb 3.2开始,默认情况下已经在使用wiredtiger。此引擎不是创建其他集合所必需的。 好吧,不要忘记创建可更新字段索引。

db.test.ensureIndex({name: 1});
db.test.update({"name":"Alex"}, {$set:{"last_name":"alexeev"}})