mysql 隔离级别示例说明

隔离级别说明

1.read uncommitted : 读取尚未提交的数据 :就是脏读

2.read committed:读取已经提交的数据 :可以解决脏读,但是出现不可重复读

3.repeatable read:可重读:可以解决脏读 和 不可重复读 ---mysql默认的

4.serializable:可串行化:一个个事务排成序列的形式。事务一个挨一个执行,等待前一个事务commit完,后面的事务才可以顺序执行,容易产生死锁

准备工作

1.创建两个mysql客户端

2.创建测试表和数据

CREATE TABLE `user`  (
  `id` varchar(64)  NOT NULL COMMENT 'id',
  `name` varchar(64) DEFAULT NULL COMMENT '名称',
  `age` int(2) DEFAULT NULL COMMENT '年龄',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '用户测试表';
INSERT INTO `user` VALUES ('1', 'AAA', 12);

测试mysql的隔离级别

查看隔离级别

SELECT @@tx_isolation;

默认为:repeatable read

设置隔离级别

set session transaction isolation level ********

1.read uncommitted

2.read committed

3.repeatable read

4.serializable

补充

1.读已提交(read committed)和可重复读(repeatable read)的实现方式是通过MVCC来解决的
2.read uncimmitted由于存在脏读,能读到未提交事务的数据行,而MVCC的创建版本和删除版本只要在事务提交后才会产生。所以不适用。
3.串行化由于是会对所涉及到的表加锁,并非行锁,自然也就不存在行的版本控制问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值