再说MySQL数据库事务隔离级别的那些事(通俗版非学院派)

MySQL数据库事务隔离级别有四种:READ-UNCOMMITTED(读未提交)、READ-COMMITTED(读提交)、REPEATABLE-READ(重复读)、SERIERLIZED(序列化读)。

要真正理解数据库事务隔离级别不能光看书,必须要上机操作,多练几次就会明白的了。上机环境有几点大家要注意的:1,把事务的自动提交功能关掉;2,把表引擎设置为InnoDB(支持事务操作);3,在做实验的时候先设置好数据库事务隔离级别;4,通过打开多个命令行窗口来模拟多个事务并发操作,一般两个窗口就可以看到效果。

 

  1. 读未提交。一个事务对数据进行了修改,但是未提交。其它事务照样能看到变化后的数据。
  2. 读提交。一个事务对数据进行了修改,必须提交后,其它事务才能看到变化后的数据。
  3. 重复读。一个事务对数据进行了修改,不管是否提交。其它已发生的事务都不能看到变化后的数据。必须刷新事务才能看到已提交的变化。
  4. 序列化读。事务排队来操作数据库,select语句会对表或选中的记录加锁。
总结:“读提交”是最常用的数据库事务隔离级。MySQL的默认设置是“重复读”,但是“重复读”有可能产生“幻读”的现象。至于“读未提交”和“序列化读”应用的场景就非常少了。在理解事务的时候,同时还要考虑到锁的问题。
再说一下只读事务,只读事务只是解决本次事务中数据不被其他事务影响,有点类似于可重复读的情况。
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值