我对RethinkDB了解不多,所以这个答案主要基于MongoDB。
虽然MongoDB不能同时提供对多个文档的原子操作,但它确实保证了影响一个文档的单个操作的原子性。这意味着当一个查询更改同一文档的多个字段时,您可以确保所有这些更改都将同时执行。结合 MongoDB 在一个文档中保持一致的数据集而不是将其分布在不同相关表的多行中的理念,这消除了许多需要在关系数据库中进行事务的情况。
并非每个项目都需要复杂的交易。当然,在某些领域它是必不可少的(就像大多数处理金钱的情况一样),但在其他情况下,当某些数据在几毫秒内不一致时,它实际上并不是什么大问题。您需要考虑数据一致性对于您的项目有多重要。当您得出结论认为在很多情况下确实需要事务时,请务必坚持使用 SQL。
在紧要关头,MongoDB可以使用两阶段提交模型来模拟多文档事务。它不容易实现,也不容易使用,它不会产生漂亮的数据模型,但当你有一个在所有方面都适合 MongoDB 的项目(除了一个用例之外)时,它是一种有效的解决方法这离不开交易。
归档时间: |
|
查看次数: |
1944 次 |
最近记录: |