15、Spring 事务属性

64 阅读1分钟

MySQL中事务的隔离级别一共分别四种,分别如下:

序列化(SERIALIZABLE)

可重复读(REPEATABLE READ)

提交读(READ COMMITTED)

未提交读(READ UNCOMMITTED)

四种不同的隔离级别分别如下:

1.SERIALIZABLE

  • 串行化(Serializable)是最高的事务隔离级别,它严格服从 ACID 特性的隔离级别。所有的事务依次逐个执行,事务之间互不干扰,该级别可以防止脏读、不可重复读以及幻读。但每个事务读数据时都需要获取表级的共享锁,导致读和写都会阻塞,性能极低。

2.REPEATABLE READ

  • 可重复读(Repeatable Read)就是在一个事务里相同条件下,无论何时查到的数据都和第一次查到的数据一致。这是 MySQL 数据库 InnoDB 引擎默认的事务隔离级别。在范围查询时存在幻读的问题。

3.READ COMMITTED

  • 读已提交(Read Committed)只能查询到已提交的数据。这是 Oracle 数据库默认的事务隔离级别。存在不可重复读、幻读的问题。

4.READ UNCOMMITTED

  • 读未提交(Read Uncommitted)允许脏读,就是在该隔离级别下,可能读到其他会话未提交事务修改的数据,存在脏读、不可重读读、幻读的问题。

查看事务的隔离级别:

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png