数据库的事务隔离级别有哪些?

2 分钟阅读 257 字 + 209 词
参考答案
  1. 读未提交 (Read Uncommitted):
    • 允许一个事务读取另一个事务尚未提交的数据修改。
    • 最低的隔离级别, 存在脏读、不可重复读和幻读 的问题。
  2. 读已提交 (Read Committed):
    • 一个事务只能读取已经提交的数据。其他事务的修改在该事务提交之后才可见
    • 解决了脏读问题,但仍可能出现不可重复读和幻读。
  3. 可重复读 (Repeatable Read):
    • 事务执行期间,多次读取同一数据会得到相同的结果,即在事务开始和结束之间,其他事务对数据的修改不可见
    • 解决了不可重复读问题,但在理论上仍可能出现幻读,所以引入了**MVCC(快照读)和间隙锁(当前读)**很大程度来避免了幻读问题。
  4. 序列化 (Serializable):
    • 最高的隔离级别, 确保事务之间的并发执行效果与串行执行的效果相同 ,即不会出现脏读、不可重复读和幻读。