mysql PRIMARY KEY 多个字段,mvcc隐藏的row_id 是什么
时间: 2024-05-21 15:14:43 浏览: 89
MySQL中RR级别下的MVCC
在 MySQL 中,可以将多个字段定义为 PRIMARY KEY,这被称为复合主键(Composite Primary Key)。这种情况下,MySQL 存储引擎会使用所有主键字段的值来确定唯一的行。
在 MVCC(Multi-Version Concurrency Control,多版本并发控制)中,为了支持并发事务,MySQL 存储引擎会在每个行记录中添加隐藏的 row_id,用于标识唯一的行。这个 row_id 是一个 6 字节的整数,由存储引擎自动分配。
当一个事务需要读取或修改某一行时,它会使用主键值来访问该行,并使用其对应的 row_id 进行 MVCC 控制。这样可以确保不同事务中的并发操作可以正确地访问和更新相同的行,而不会产生冲突。
阅读全文