数据库中的可重复读

介绍可重复读

  • 可重复读是数据库事务隔离级别中的一种,它保证在事务执行过程中,同一个查询语句多次执行得到的结果都是一致的。

可重复读的特点

  1. 事务在执行期间会保持之前读取的数据不变,即使其他事务对该数据做了修改。
  2. 可重复读会使用锁机制来确保数据的一致性。
  3. 可重复读能够避免脏读丢失修改不可重复读的并发问题。
  4. 但是不能避免幻读

如何实现可重复读

方案

  1. 事务过程中,会锁定所有的读取到的数据
  2. 使用MVCC(多版本并发控制)来实现可重复读,即每个事务可以看到其开始时数据库状态的一个快照。

可重复读与其他隔离级别的比较

  1. 可重复读比读未提交和已提交读更加严格,可以避免更多类型的并发问题。
  2. 可重复度相对于串行化隔离级别来说性能更好,因为它只在需要时才使用行级锁。