gpt4 book ai didi

mongodb - 没有交易怎么活?

转载 作者:可可西里 更新时间:2023-11-01 09:13:34 26 4
gpt4 key购买 nike

大多数流行的 NoSQL 数据库(MongoDB、RethinkDB)都不支持 ACID 事务。如今,它们在不同系统的开发人员中非常流行。

问题是:没有事务如何保证数据的一致性?我认为数据一致性是生产中的主要内容之一。我错了吗?也许有一些技术可以恢复数据的一致性?

我想在我的项目中使用 RethinkDB,但我害怕错过交易。

最佳答案

我对 RethinkDB 了解不多,所以这个答案主要基于 MongoDB。

  1. 虽然 MongoDB 不能同时提供对多个文档的原子操作,但它确实保证了影响一个文档的单个操作的原子性。这意味着当一个查询更改同一文档的多个字段时,您可以确定所有这些更改将同时执行。结合 MongoDB 在一个文档中保持一致的数据集而不是将其分布在不同相关表的多行中的理念,这消除了您需要关系数据库中事务的许多情况。

  2. 并非每个 项目都需要复杂的交易。当然,在某些领域它是必不可少的(比如大多数与金钱打交道的情况),但在其他情况下,当某些数据在几毫秒内不一致时,它实际上并不是什么大问题。您需要考虑数据一致性对您的项目有多重要。当您得出结论,在很多情况下确实需要事务时,请务必坚持使用 SQL。

  3. 在紧要关头,MongoDB 可以使用 the two-phase commit model 模拟多文档事务。 .它不容易实现,不容易使用,它不会产生漂亮的数据模型,但是当你有一个项目时,它是一个有效的解决方法,除了那个用例之外,它在所有方面都非常适合 MongoDB这离不开交易。

关于mongodb - 没有交易怎么活?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32602178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com