欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

事务的隔离级别

程序员文章站 2022-05-09 15:58:45
...

1.更改级别

 mysql> set session transaction isolation level read uncommitted;

mysql> select @@tx_isolation;
+---------------------------------+
| @@tx_isolation                  |
+---------------------------------+
| READ-UNCOMMITTED                |
+---------------------------------+
1 row in set, 1 warning (0.00 sec)

2. 开启事务

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

 3.回滚

mysql> rollback;
Query OK, 0 rows affected (0.04 sec)

 4.提交

mysql> commit;
Query OK, 0 rows affected (0.01 sec)

蓝色的是A事务,绿色是的是B事务

READ UNCOMMITTED 级别  脏读、不可重复读、虚读都有可能发生

更换级别

事务的隔离级别

 脏读:A事务读取了B事务未提交的数据

事务的隔离级别

不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同。一个事务读取到了另一个事务提交或未提交后(看数据库的隔离级别)的数据。(update)

事务的隔离级别

幻读:是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。 (insert)

事务的隔离级别

 READ COMMITTED 级别 避免赃读。不可重复读、虚读都有可能发生。(oracle默认的)

避免脏读

事务的隔离级别

不可重复读会发生,而且修改另一个事务未提交的修改时会等待

事务的隔离级别

事务的隔离级别

幻读

事务的隔离级别

REPEATABLE READ 避免赃读、不可重复读。虚读有可能发生。(mysql默认)

避免脏读

事务的隔离级别

避免不可重复读(注意在一个事务内读取另一个事务内提交的数据)。

注意:当重新开启事务时,数据才更新,可以查询到更新的数据。

事务的隔离级别

有可能发生幻读

事务的隔离级别

上一篇: sharding-jdbc事务解读

下一篇: SQL JOIN