事务补充
Posted jackw1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事务补充相关的知识,希望对你有一定的参考价值。
MVCC
在mysql
里,有两个"视图"个概念
- 一个是
view
,它是一个用查询语句定义的虚拟表,在调用的时候执行查询语句并生成结果。 - 另一个是
InnoDB
在实现MVCC
时用到的一致性读视图,即consistent read view
,用于支持RC
(Read Committed
,读提交)和RR
(Repeatable Read
,可重复读)隔离级别的实现。
InnoDB
里面每个事务有一个唯一的事务ID
,叫做transaction id
,它是在事务开始的时候向InnoDB
的事务系统申请的,是按申请顺序严格递增的。
而每行数据也是有多个版本的。每次事务更新数据的时候,都会生成一个新的数据版本,并且把transaction id
赋值给这个数据版本的事务ID
,记为row trx_id
。同时,旧的数据版本要保留,并且在新的数据版本中,能够有信息可以直接拿到它。也就是说,数据表中的一行记录,其实可能有多个版本(row
),每个版本有自己的row trx_id
。
以上是关于事务补充的主要内容,如果未能解决你的问题,请参考以下文章