Mysql事务的隔离级别

1. 事务的四个特性(ACID)

①原子性:每个事务是一个整体,不可再拆分,事务中所有SQL语句要么都执行,要么都不执行.
②一致性:事务执行前后,数据库状态不变.(比如两人转账,事务执行前后总金额不会变)
③隔离性:事务和事务之间不能相互影响,执行时保持隔离状态.
④持久性:事务一旦提交成功,则影响是持久的.

2. 并发访问带来的三种问题

①脏读:A事务读到B事务中未提交的数据
②不可重复读:A事务读取两次同一个数据,数据不一样.期间被B修改了
③幻读:A事务读取两次,两次的数据量不同,期间被B删除或者增加了

3. 事务的隔离级别

说明:是表示该级别会出现该问题,否表示该级别不会出现该问题

级别名字隔离级别脏读不可重复度幻读
1读未提交read uncommitted
2读已提交read committed
3可重复度repeatable read
4串行化serializable

①读未提交:A事务可以读取到B事务已经修改但是没提交的数据,会引起脏读,不可重复度,幻读三种问题.
②读已提交:A事务对数据进行了修改,B事务在A事务未修改数据前开启的,B事务读到的数据是A修改之前的 数据,A提交事务后,修改的数据才生效.
③可重复读:一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下,未提交变更对其他事务也是不可见的。
如:A事务运行,B事务对数据修改后提交,也不能改变A事务已经读的数据.
④串行化:A事务运行,B不能增删操作.当A事务提交之后,B事务的增删才能运行.

3. 事务的默认隔离级别

mysql:可重复度
oracle:读已提交
SQL server 读已提交

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值