• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

数据库ACID

mysql 搞代码 4年前 (2022-01-09) 27次浏览 已收录 0个评论

数据库ACID 1、ACID是RDBMS的理论基石; A原子(Atomiclty )事务原子性; C一致(Consistency)插入一张表数据,会影响其它(索引/其它表)等一致。 I 隔离性(ioslation)事务独立,封闭;隔离性强度; D持久性(Durabilty)数据永存。 对应分布式数据库,

数据库ACID

1、ACID是RDBMS的理论基石;

A原子(Atomiclty )事务原子性;

C一致(Consistency)插入一张表数据,会影响本文来源gaodaima#com搞(代@码$网6其它(索引/其它表)等一致。

I 隔离性(ioslation)事务独立,封闭;隔离性强度;

D持久性(Durabilty)数据永存。

对应分布式数据库,某些业务不需全部一致性事务,可采用弱化其中之一,提供其它响应速度等。

理解:

A 事务原子性,指对一个事务要么完全提交要么完全回滚,保证提交成功的给数据库的和外部反应的一致。或者提交不成功,完全回滚,数据库完全没反应于外部。这种事务原子保证了现实生活很多业务现象的合理。例如:银行存款,如果确定成功存入,数据库必须完整修改。如果存入失败,数据库必须完全回滚。不能在数据库只存一半或回滚一半。

C 事务一致性:一个事务执行前和执行后在数据库必须保证一致状态;例如:表a和表b有主外键约束,更新a,级联b值需要保持一致性更新。

I 是事务的隔离性 ,事务的隔离有4个级别(?read Uncommitted,read committed ,rapeatable read?,可串行)数据库为了防止出现数据库读取不一致,可设置不同等级的事务的隔离性;

D、 持久性 :在事务完成以后,数据持久的保存在数据库之中,并不会被回滚。

BASE模型完全不同ACID模型,牺牲高一致性,获得可用性或可靠性: Basically Available基本可用。支持分区失败(e.g. sharding碎片划分数据库) Soft state软状态 状态可以有一段时间不同步,异步。 Eventually consistent最终一致,最终数据是一致的就可以了,而不是时时一致。

BASE思想的主要实现有
1.按功能划分数据库
2.sharding碎片

BASE思想主要强调基本的可用性,如果你需要高可用性,也就是纯粹的高性能,那么就要以一致性或容错性为牺牲,BASE思想的方案在性能上还是有潜力可挖的。

  • Basically Availble –基本可用
  • Soft-state –软状态/柔性事务
  • Eventual Consistency –最终一致性

?强一致性

强一致性(即时一致性) 假如A先写入了一个值到存储系统,存储系统保证后续A,B,C的读取操作都将返回最新值

?弱一致性

假如A先写入了一个值到存储系统,存储系统不能保证后续A,B,C的读取操作能读取到最新值。此种情况下有一个“不一致性窗口”的概念,它特指从A写入值,到后续操作A,B,C读取到最新值这一段时间。

?最终一致性

最终一致性是弱一致性的一种特例。假如A首先write了一个值到存储系统,存储系统保证如果在A,B,C后续读取之前没有其它写操作更新同样的值的话,最终所有的读取操作都会读取A写入的最新值。此种情况下,如果没有失败发生的话,“不一致性窗口”的大小依赖于以下的几个因素:交互延迟,系统的负载,以及复制技术中replica的个数(这个可以理解为master/salve模式中,salve的个数)。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:数据库ACID

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址