数据库

首页 » 常识 » 问答 » 大部分关系数据库并不真的支持ACID
TUhjnbcbe - 2020/12/21 23:15:00
北京哪有专业治疗白癜风的医院 http://pf.39.net/bdfyy/

大部分关系数据库宣称与NoSQL的区别是%支持ACID事务,在现实中,很少有关系数据库包括Oracle能提供正式的ACID保证,即使他们宣传自己是提供真正ACID。

那么,谁在撒谎呢?

文章Whenis“ACID”ACID?Rarely.

PeterBailis认为:

ACID的教科书正式定义隔离是串行化serializability,即执行一组事务的结果应该相当于这些事务的串行执行,这就意味着每个操作数据库的事务好像只有它们自己一样,这能确保数据库的正确性和一致性,带有串行化的数据库(ACID中I)提供了任意读写事务并且确保一致性(ACID中的C)或正确性,没有串行化,ACID(特别是一致性)将无法得到保证。

大部分提供ACID的数据库并不提供串行化,作者在文章中列出了18种数据库中默认的只有三个提供串行化(defaultisolation列),只有9个将串行化作为选项提供(MaximumIsolation列):

图中标注S的表示提供串行化,RC表示read

1
查看完整版本: 大部分关系数据库并不真的支持ACID