事物ACID与隔离级别

ACID

A(atomicity)       原子性:一个事物中的所有操作要么都成功,要么都失败

C(consistency)   一致性:数据库总是从一个状态转换到另一个转态

I(isolation)         隔离性:一个事物提交前对另一个事物是不可见的(与隔离级别有关)

D(durability)      持久性:事物一旦提交,数据就永久保存到数据库中

 

隔离级别

read uncommitted 未提交读  脏读

可以读到另一个事物未提交的数据

 

red commited 提交读 不可重复读

只能读取到事物提交后的数据。如果B事务在A事务的2次查询中修改了数据,那么A事务两次查询到的结果将不同

 

repeatable read 可重复读(默认隔离级别)

保证一个事务多次读取同样记录的结果是一致的。

    例子:事务A查询id=1的记录name=‘yyy’,此时事务B修改id=1的记录name=‘aaa’并提交事务,事务A再次查询id=1的记录name依然=‘yyy’。

但是如果读取的是一个范围的记录,其他事务在这个范围内插入了新的记录,将导致幻读。

    例子:事务A查询id<5的记录,返回id为1、2、3的三条记录,事务B插入id=4的记录并提交事务,此时事务A将读到四条记录。

MySQL的innoDB引擎通过多版本并发控制解决了幻读问题

 

serializable 可串行化

事物排队,加锁 阻塞

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值