原子性和事务处理数据库操作的核心,保证了数据的准确性。依据数据库原子性,数据库使用数据库的人员定义事务处理的方式。本文依据Mongodb官方文档整理Mongodb数据库的原子性和事务处理方法

Mongodb原子操作

        Mongodb中,对单个文档的操作是原子的,即使一次文档更新中,更新了文档多个嵌入文档,这个更新操作也是原子操作。

        当文档写入更新语句更新多个文档时,该操作不是原子的。如使用updateMany更新多个文档,insertMany集合插入条数据,这样的操作都不是原子的。mongodb执行过程中,mongodb会将多文档插入更新转化为单文档插入更新操作,保证每个文档的操作是原子的,并为每个单一文档操作添加操作日志。多文档操作更新数据过程中,其他写操作有机会穿插进来。

多文档事务

        为了保证多文档事务的原子性,mongodb给出了多文档事务解决方案

        多文档事务是原子性的。当事务提交时,所有在事务中修改的文档都会被保存,更新后的数据对事务外部可见。如果事务中的部分操作需要回滚,整个事务中的操作都不会被提交。事务中所有需要更新的数据保持不变。

        借助多文档事务,开发人员保证数据操作的原子性。但操作多文档事务,与操作单文档相比,数据库性能会受到更大的影响。从数据库设计角度来说,多文档事务的支持,不应该成为合理高效数据结构定义的替代品。大多数场景中,应该通过持续优化标准的数据结构数组对象定义来减少多文档事务。减少数据库操作等待时间提高数据库效率。

事务中的操作

        下面列出了事务中允许和禁止的操作

原文地址:https://blog.csdn.net/wilsonzane/article/details/134714886

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_17779.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注