数据库事务--数据库事务隔离级别实战

2、演示环境

数据库及工具

➢MySQL版本
5.5.47
➢数据库工具
Navicat for MySQL

数据库命令

➢查看数据库版本:

select version();

➢查看数据库现在的隔离级别:

select @@session.tx_ isolation;

➢修改隔离级别:

set @@session.tx_ _isolation=级别参数;

➢级别参数:

READ-UNCOMMITTED,READ-COMMITTED,REPEATABLE-READ (MySQLinnoDB的默认隔离级别) ,SERIALIZABLE;
➢开启事务:

start transaction;

➢提交/回滚:

commit; 
rollback; 

数据库表

DROP TABLE IF EXISTS `account`;
CREATE TABLE `account` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
  `balance` double(32,0) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

INSERT INTO `account` VALUES (1, '张三', 1000);
INSERT INTO `account` VALUES (2, '李四', 1000);
INSERT INTO `account` VALUES (3, '王五', 1000);

3、读未提交

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WFRwNj7H-1690892765110)(数据库事务隔离级别实战.assets/image-20201207190616844.png)]

修改隔离级别:

set @@session.tx_ _isolation=READ-UNCOMMITTED;

READ-COMMITTED,REPEATABLE-READ (MySQLinnoDB的默认隔离级别) ,SERIALIZABLE;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DebxQHS5-1690892765111)(数据库事务隔离级别实战.assets/image-20201207190754257.png)]

4、读已提交

修改隔离级别:

set @@session.tx_ _isolation=READ-COMMITTED;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JfHfrkcj-1690892765111)(数据库事务基本概念.assets/image-20201207174306584.png)]

5、可重复读

修改隔离级别:

set @@session.tx_ _isolation=REPEATABLE-READ;

(MySQLinnoDB的默认隔离级别)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3csTCxV4-1690892765111)(数据库事务基本概念.assets/image-20201207174452470.png)]

6、可串行化

修改隔离级别:

set @@session.tx_ _isolation=SERIALIZABLE;

没有模拟 效率太低 不建议使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值