MongoDB是一种文档数据库,不同与关系型数据库,它没有Scheme。MongoDB 使用面向文档的数据模型,导致很多概念都与 RDBMS 有一些差别,虽然从总体上来看两者都有相对应的概念。
MongoDB支持设置读偏好,有以下几种选项可配置:
事务与session是关联的,在任何给定时间,一个会话最多只能有一个未完成的事务。分布式系统在实际应用中也要面临着访问延迟和一致性之间的权衡,MongoDB使用读写关注进行配置。
事务使用事务级别的写关注进行写操作,可以在事务开始时设置事务级别的写关注,带有写关注的操作会等到数据库确认成功写入后才能返回,因此写关注会带来性能上的损失。
如果未设置事务级写关注,则事务级写关注默认为提交的会话级写关注。
如果未设置事务级写关注和会话级写关注,则事务级写关注默认为客户端级写关注。 默认情况下,客户端级别的写入问题为w:1
。
w:1
:只针对primary节点的确认返回
w:majority
:多数有投票权的节点确认返回
事务使用事务级别的读关注进行读操作,控制读取数据的”新鲜度”和持久性。
如果未设置事务级别和会话级别的读关注,则事务级别的读取关注点默认为客户端级别的读关注。 默认情况下,对于主服务器的读取,客户端级别的读关注为local
。
待续……