1、MySQL 多版本并发控制原理-隔离级别

1、事务隔离级别:

  • 读未提交 read uncommitted: 会出现 脏读、不可重复读、幻读
  • 读已提交 read committed: 会出现 不可重复读、幻读
  • 可重复读 repeatable read :会出现幻读**(解决方式:MVCC多版本并发控制,next-key-lock)Mysql 默认隔离级别**
  • 串行化 serializable

问题区别:

  • 幻读:同一个事务,前后两次读取的数据不一样。

幻读的重点在于 INSERT

  • 不可重复读:同一个事务,多次读同一数据。事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。

A读取事务数据后,再次读取却发现数据 发生改变或删除了;不可重复读重点在于 UPDATA 和 DELETE。

  • 脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问 这个数据,然后使用了这个数据。

A修改数据,在完成提交前,B事务来读取,就是原始数据,但是A已经修改成新数据了

2、如何查看和设置Mysql事务隔离级别?

查看隔离级别:

查看当前MySQL版本:select version();

1、查看系统隔离级别: select @@global.tx_isolation;
在这里插入图片描述

2、查看会话隔离级别(版本5) : select @@ tx_isolation;

3、查看会话隔离级别(版本8) : select @@transaction_isolation;
我的是8:
在这里插入图片描述

设置隔离级别

注意:系统和会还的隔离级别可能是不一样的。

设置会话隔离级别: set session transaction isolation level repeatable read;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞四海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值