MySQL事务隔离级别分析与演示

命令

查看MySQL当前的隔离级别

/*方式一*/
select @@tx_isolation;

/*方式二*/
show variables like 'tx_isolation';

在这里插入图片描述

设置MySQL的隔离级别

/* read uncommitted/read committed/repeatable read/serializable */
set session transaction isolation level read uncommitted

开启事务 start transaction

提交事务 commit

回滚事务 rollback

设置事务自动提交是否开启
关闭事务自动提交:set autocommit=0;
注:值0和OFF都是一样的,当然,1也就表示ON。
查看是否开启自动提交功能:show variables like 'autocommit';
在这里插入图片描述

事务隔离级别演示

问题 描述 要求
脏读(Dirty Reads) B事务读到了A个事务未提交的数据。 B事务要读取A事务已经提交的数据。
不可重复读(Non-Repeatable Reads) 一个事务中两次读取的数据不一致。 一个事务中多次读取的数据是一致的。
虚/幻读(Phantom Reads) 一个事务中两次读取到的数据的条数不一致。 一个事务多次读取的数据的条数是一致的。
隔离级别 脏读可能性 不可重复读可能性 幻读可能性 加锁读
READ UNCOMMITTED Yes Yes Yes No
READ COMMITTED No Yes Yes No
REPEATABLE READ No No Yes No
SERIALIZABLE No No No Yes

数据准备

DROP TABLE IF EXISTS `account`;
CREATE TABLE `account` 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值