InnoDB存储引擎对MVCC的实现
MVCC 是一种并发控制机制,用于在多个并发事务同时读写数据库时保持数据的一致性和隔离性。它是通过在每个数据行上维护多个版本的数据来实现的。当一个事务要对数据库中的数据进行修改时,MVCC 会为该事务创建一个数据快照,而不是直接修改实际的数据行。
- 读(SELECT)
当一个事务执行读操作时,它会使用快照读取。快照读取是基于事务开始时数据库中的状态创建的,因此事务不会读取其他事务尚未提交的修改。具体工作情况如下:
- 对于读取操作,事务会查找符合条件的数据行,并选择符合其事务开始时间的数据版本进行读取
- 如果某个数据行有多个版本,事务会选择不晚于其开始时间的最新版本,确保事务只读取在它开始之前已经存在的数据
- 事务读取的是快照数据,因此其他并发事务对数据行的修改不会影响当前事务的读取操作
- Multi-Version Concurrency Control Version Multimulti-version concurrency control version multi-version concurrency lecture control multi-version concurrency lecture control theory concurrency lecture control index concurrency control project数据库 concurrency题目project control control version chatgpt groups concurrency bzm-concurrency