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

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、读未提交

数据库事务--数据库事务隔离级别实战_第1张图片

修改隔离级别:

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

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

数据库事务--数据库事务隔离级别实战_第2张图片

4、读已提交

修改隔离级别:

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

数据库事务--数据库事务隔离级别实战_第3张图片

5、可重复读

修改隔离级别:

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

(MySQLinnoDB的默认隔离级别)

数据库事务--数据库事务隔离级别实战_第4张图片

6、可串行化

修改隔离级别:

set @@session.tx_ _isolation=SERIALIZABLE;

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

你可能感兴趣的:(#,数据库事务,数据库,android)