[数据库] 数据库的四大特性acid及事务的隔离级别

转载 2016年08月30日 16:19:09


ACID

A - atomicity 原子性,指事务包含的所有操作要么全部成功,要么全部失败回滚,不可能停滞在某个中间环节

C – consistency 一致性,指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。

I – Isolation 隔离性,当多个用户并发访问数据库时,比如操作同一张表,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

D – Durability 持久性,指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失事务的操作。

 

并发操作会带来哪些数据不一致性? (ABC)

A 丢失修改:两个事务读入同一数据并修改,T2提交的结果破坏了T1提交的结果,比如T1 读A修改为A-1, T2读A修改为A-1,实际上T2读的是A-1,修改后变为A-2.

 

B 不可重复读:在一个事务两次读数据之间的间隙,另一个事务对该数据访问并进行了修改(同一条件,不同时间,读取的数据值不同,存在update)

 

C 脏读:是指当一个事务对数据进行了修改但还没提交到数据库时,另一个事务访问并使用了这个数据。



 

幻影读: 同一事务在两个不同的时间段执行相同的查询条件得到的结果不一致(同样的条件,第一次和第二次读出的记录个数不一样,存在add/delete记录)

 

 现在来看看MySQL数据库为我们提供的四种隔离级别:

  ① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。

  ② Repeatable read (可重复读):可避免脏读、不可重复读的发生。

  ③ Read committed (读已提交):可避免脏读的发生。

  ④ Read uncommitted (读未提交):最低级别,任何情况都无法保证。

 

在MySQL数据库中默认的隔离级别为Repeatableread (可重复读)。

在MySQL数据库中查看当前事务的隔离级别:

    select @@tx_isolation;

 

在MySQL数据库中设置事务的隔离 级别:

    set  [glogal | session]  transaction isolation level 隔离级别名称;
 
    set tx_isolation=’隔离级别名称;’

数据库的事务处理必须满足ACID原则,ACID分别是指什么

数据库事务的ACID属性编辑 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应...
  • dingxingmei
  • dingxingmei
  • 2014年09月14日 15:59
  • 2877

事务的四大特性和隔离级别

事务,其定义是应用程序中一系列不可分割的操作,就是一组可以完成某个业务的代码集合,在关系数据库中,事务可以是一条SQL语句,或者一组SQL语句,亦或整个程序。...
  • u012012621
  • u012012621
  • 2016年03月03日 12:26
  • 1831

数据库事务的四大特性、隔离级别以及Spring中如何利用AOP进行事务管理

首先,什么是事务? 事务就是业务上的一个逻辑单元,它能够保证其中对数据所有的操作,要么成功,要么失败。 其次,事务的特性有哪些? 1.原子性。 例如,转账,A账户减少,B账户增加。虽然是两条 DML语...
  • c_w_d
  • c_w_d
  • 2017年03月18日 13:55
  • 1691

数据库中事务的四大特性(ACID)和隔离级别

本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。   如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity)   ...
  • liqiangshuaixiaozia
  • liqiangshuaixiaozia
  • 2016年11月23日 16:30
  • 205

数据库事务的四大特性(ACID)及事务隔离级别

本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。   如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity)...
  • Hughnes
  • Hughnes
  • 2016年03月18日 12:51
  • 197

数据库中 事务的四大特性(ACID),事务的隔离级别。

如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity)   原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍...
  • zh521zh
  • zh521zh
  • 2017年04月06日 18:15
  • 215

数据库事务的ACID特性和隔离级别

1. 事务的四个特性 数据库事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。一方面,当多个应用程序并发访问数据库时,事务可以在应用程序间...
  • a405578928
  • a405578928
  • 2017年04月17日 10:57
  • 198

MySql--数据库事务四大特性以及隔离级别

事务的 四大特性(ACID):原子性、一致性、隔离性、持久性。 ⑴ 原子性(Atomicity)   原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,换言之,事务的操作如果成功就必...
  • Gol_s
  • Gol_s
  • 2017年06月08日 14:32
  • 464

数据库事务的四大特性与隔离级别及测试

四大特性⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果...
  • qq_24028753
  • qq_24028753
  • 2017年08月03日 18:59
  • 210

数据库中事务的四大特性和隔离级别

http://blog.csdn.net/ww130929/article/details/76944480 数据库中事务的四大特性: 1.原子性: 事务包含的所有操...
  • only_musm
  • only_musm
  • 2018年01月02日 16:28
  • 17
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[数据库] 数据库的四大特性acid及事务的隔离级别
举报原因:
原因补充:

(最多只允许输入30个字)