首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果ACID属性有很好的定义,为什么我们有/接受不同的事务级别?

如果ACID属性有很好的定义,为什么我们有/接受不同的事务级别?
EN

Stack Overflow用户
提问于 2013-10-14 21:13:10
回答 3查看 592关注 0票数 2

我对交易的酸性性质感到困惑。

根据我的理解:

事务必须与兼容。确保一系列语句确实是一个事务的是ACID。到目前为止还好。

现在有不同的隔离级别(因为它完全是一种非事务性模式,所以我省略了读-未实现):读-共读、读-重复和SERIALIZABLE。

在我的理解中,每一个层次都提供了不同程度的隔离,也是一致的。

所以我不明白的是:

如果不同的隔离级别提供不同级别的先决条件酸特性,它们如何才能是有效/可接受的隔离级别?

或者,对于什么是事务的SQL定义是如此宽松/非正式/非严格以至于出现了这些差异?我找不到任何SQL标准文档来读取和查看实际定义是什么。

EN

回答 3

Stack Overflow用户

发布于 2013-10-14 21:16:01

酸是伟大的,酸是可取的,酸是可怕的。

但是酸是标准的。一个标准的存在并不会自动使所有实现者都依附。

如果RDBMS以任何方式提供了ACID行为,则RDBMS是符合ACID的。并非每一个DMBS都符合酸的要求(直到最近,MySQL还没有)。

酸是理想的世界。与世隔绝是现实世界。

票数 0
EN

Stack Overflow用户

发布于 2013-10-15 11:11:49

为什么我们有/接受不同的事务级别?

理论上,每个事务都应该单独执行(以实现ACID属性的I),但在实践中这没有多大意义。这都是关于性能的问题。高并发性应用程序的数据库无法以这种方式正确执行。

这样做的目的是实现隔离和性能之间的平衡。当隔离级别降低(例如,提交读取通常是默认的隔离级别)时,可能会出现一些问题:丢失更新、不可重复读取、幻影读取。通常,这种风险是可以接受的,而且它也可以被控制,只有在某些交易中才能提高隔离水平。

票数 0
EN

Stack Overflow用户

发布于 2013-12-13 12:40:31

我也觉得酸的性质令人困惑。在我看来,这些属性没有得到很好的定义.隔离特性似乎被描述为一种从原子性放松的特性。对于“真实”事务(隔离级别SERIALIZABLE),只有ACD属性感兴趣。这三种性质是格雷提出的。

在我的博客上看到更多关于这一点的信息,"ACID没有意义“。

http://blog.franslundberg.com/2013/12/acid-does-not-make-sense.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19369405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档