为什么';MongoDB有交易吗?(v4.0之前版本)

为什么';MongoDB有交易吗?(v4.0之前版本),mongodb,transactions,Mongodb,Transactions,更新:MongoDB支持4.0版的事务 原始问题: 据我所知,MongoDB不支持事务,也没有实现此类支持的计划。这是什么原因?没有事务是允许MongoDB可扩展的一种权衡 事务的目的是确保在执行多个操作时整个数据库保持一致。但与大多数关系数据库相反,MongoDB不是设计为在单个主机上运行的。它被设计成由多个分片组成的集群,其中每个分片都是多个服务器(可选地位于不同的地理位置)的副本集 事务可能会影响数据库的许多主机。这意味着必须在所有这些主机之间同步事务。这将意味着相当大的开销,并且当通过添

更新:MongoDB支持4.0版的事务

原始问题:


据我所知,MongoDB不支持事务,也没有实现此类支持的计划。这是什么原因?

没有事务是允许MongoDB可扩展的一种权衡

事务的目的是确保在执行多个操作时整个数据库保持一致。但与大多数关系数据库相反,MongoDB不是设计为在单个主机上运行的。它被设计成由多个分片组成的集群,其中每个分片都是多个服务器(可选地位于不同的地理位置)的副本集

事务可能会影响数据库的许多主机。这意味着必须在所有这些主机之间同步事务。这将意味着相当大的开销,并且当通过添加更多服务器来增加数据库的大小时,扩展会非常糟糕

政府是这样解释的:

MongoDB不支持传统的锁定或具有回滚功能的复杂事务。MongoDB的目标是实现轻量级、快速和可预测的性能。这类似于MySQL MyISAM自动提交模型。通过保持事务支持极其简单,MongoDB可以提供更高的性能,特别是对于具有多个数据库服务器进程的分区或复制系统


没有计划吗?此外,MongoDB通常设计用于非事务性应用stuff@Sammaye-当然,非事务性的东西很好,但偶尔有事务是非常有用的。虽然它可能有用,但通常不需要它们,我宁愿使用MongoDb,也不愿在分片部署中承受支持分布式多文档事务的性能影响。@WiredPairie-我想我想听听这样的回答:)为什么它会对性能产生如此大的影响,为什么分片部署会使它变得更糟?