全栈开发
数据库
【Q207】什么是隔离级

什么是隔离级

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 208 (opens in a new tab)

Author 回答者: ansonlovecoding (opens in a new tab)

隔离级别(Isolation Level)是数据库管理系统(DBMS)中用于控制并发事务访问共享数据的一个概念。隔离级别规定了一个事务对数据库中数据的读取和写入在何种程度上与其他事务隔离,以防止并发事务引起的一系列问题,如脏读、不可重复读和幻读。

常见的隔离级别有以下四种: 读未提交(Read Uncommitted): 允许一个事务读取另一个事务尚未提交的数据。这是最低的隔离级别,也是最灵活的,但会导致脏读、不可重复读和幻读的问题。 读提交(Read Committed): 允许一个事务读取另一个事务已经提交的数据。在这个级别下,脏读的问题得到解决,但仍可能发生不可重复读和幻读。 可重复读(Repeatable Read): 保证在同一个事务中多次读取相同的数据时,得到的结果是一致的。可重复读级别通过锁定读取的数据行,防止其他事务修改这些行,解决了不可重复读的问题。 串行化(Serializable): 提供最高的隔离级别,确保一个事务的执行过程中不会受到其他事务的干扰。它通过对数据进行加锁,防止其他事务读取或修改被锁定的数据,从而避免了脏读、不可重复读和幻读。

一般我们常用Serializable级别。