Skip to content

事务的隔离级别

约 273 字小于 1 分钟

数据库MySQL事务

2025-03-05

简单介绍事务里常见的4种隔离级别,未提交读、读已提交、可重复读和串行读

未提交读(Read Uncommitted)

允许脏读,也就是可能读取到其他事务中更新了,但是还没有提交的数据。

读已提交(Read Committed)

只能读取到已经提交的数据。

可重复读(Repeated Read)

在同一个事务内,同一查询语句经过多次执行,得到的结果都会和事务第一次指定的查询结果保持一致。这个事务隔离级别是InnoDB的默认隔离级别。

在SQL标准中,这个隔离级别解决了不可重复读问题,但是还会存在幻读情况,但是InnoDB为了解决幻读引入的一种锁机制,叫间隙锁。

串行读(Serializable)

完全串行化的读,每次读数据都需要获得表级共享锁,读写相互都会阻塞。是一种性能很低的隔离级别。