
【计】 repeatable read
approve; but; can; may; need; yet
【计】 repetitive reading
在计算机科学(特别是数据库事务管理领域)中,“可重复读”是一个重要的术语,其英文对应为Repeatable Read。它特指数据库事务隔离级别(Transaction Isolation Level)中的一种,用于保证在同一个事务内多次读取同一数据时,结果始终一致。以下是详细解释:
“可重复读”指在一个数据库事务的执行过程中,如果该事务多次读取同一行数据,那么每次读取到的值都相同。即使在此期间有其他事务修改了该数据并提交,当前事务也不会看到这些修改。这保证了读取操作的可重复性和一致性。
Repeatable Read is an isolation level that guarantees that any data read during a transaction will remain unchanged if read again within the same transaction. This means that once a transaction reads a piece of data, it is “locked” against updates by other transactions until the first transaction completes, preventing non-repeatable reads.
在较低隔离级别(如 Read Committed)下,一个事务两次读取同一数据可能得到不同结果(因其他事务修改提交)。可重复读级别消除了这种现象,确保多次读取结果一致 。
若其他事务插入或删除符合当前事务查询条件的新行(例如新增一条 WHERE age>30
的记录),当前事务再次执行相同查询可能看到这些新行(幻读)。这是可重复读与更高级别(如 Serializable)的主要区别 。
数据库通常通过行级锁或多版本并发控制(MVCC) 实现。例如:
隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
读未提交 (Read Uncommitted) | ❌ | ❌ | ❌ |
读已提交 (Read Committed) | ✔️ | ❌ | ❌ |
可重复读 (Repeatable Read) | ✔️ | ✔️ | ❌ |
串行化 (Serializable) | ✔️ | ✔️ | ✔️ |
注:✔️ 表示可防止该问题;❌ 表示可能出现该问题。
A. Silberschatz, H. Korth, S. Sudarshan. Database System Concepts. 第7版. McGraw-Hill.
(标准教材,详细定义隔离级别)参考链接:数据库系统概念
MySQL 8.0 Reference Manual: InnoDB Transaction Model
(解释InnoDB如何实现可重复读及幻读处理)
Oracle Database Concepts: Data Concurrency and Consistency
(阐述事务隔离原理)
Gray, J., & Reuter, A. (1993). Transaction Processing: Concepts and Techniques. Morgan Kaufmann.
(事务处理理论奠基著作)参考链接:Google Scholar
通过以上定义、机制及权威来源的说明,“可重复读”作为数据库事务的关键隔离级别,其技术内涵与应用价值得以清晰呈现。
可重复读(Repeatable Read)是数据库事务隔离级别的一种,主要解决并发事务中的数据一致性问题。以下是综合多个来源的详细解释:
可重复读确保在同一个事务内,多次读取同一数据时结果一致。即使其他事务在此期间修改了数据,当前事务仍会基于事务开始时创建的数据库快照进行读取。这种机制通过多版本并发控制(MVCC)实现,事务读取的是历史版本数据而非实时数据。
不可重复读
例如:事务A第一次读取数据后,事务B修改并提交了该数据,若事务A再次读取会得到不同结果。可重复读通过快照隔离避免了此问题。
部分幻读场景
虽然SQL标准中可重复读允许幻读,但实际实现(如MySQL的InnoDB引擎)通过间隙锁(Gap Lock)阻止其他事务插入新数据,从而避免幻读。
隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
读未提交 | 可能 | 可能 | 可能 |
读已提交 | 避免 | 可能 | 可能 |
可重复读 | 避免 | 避免 | 部分避免(依赖实现) |
串行化 | 避免 | 避免 | 避免 |
提示:如需完整事务隔离级别说明,可参考中的数据库权威文档。
【别人正在浏览】