MVCC多版本并发控制
MVCC多版本并发控制
隐藏字段
DB_TRX_ID
最近修的事务id,记录创建这条记录或最新一次记录的事务id
DB_ROLL_PTR(存储的是内存地址)
回滚指针,指向这条记录的上个版本,用于配合undolog,回滚到上一个版本
DB_ROW_ID
隐藏的主键,如果没有主键则innodb会自动创建一个tow_id
ReadView(快照读)才会使用mvcc
最普通不加锁的select查询
数据结构
m_ids:当前活跃的事务编号集合
min_trx_id:最小的活跃事务编号
max_trx_id:最大的活跃事务编号
creator_trx_id:readview创建者的事务编号
RC(读已提交):每次查询会生成新的ReadView
01.png)
02.png)
RR(可重复读)仅在第一个查询时候创建ReadView,后续快照读复用
两次快照读之前存在当前读,在会重新生成ReadView,会导致幻读
当前读
加锁的select查询
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ting-个人博客!