Heim > Datenbank > MySQL-Tutorial > Hauptteil

数据库ACID

WBOY
Freigeben: 2016-06-07 15:41:31
Original
1366 Leute haben es durchsucht

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

数据库ACID

 

1、ACID是RDBMS的理论基石;

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

     C一致(Consistency)插入一张表数据,会影响其它(索引/其它表)等一致。

     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的个数)。

 

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage