doc: 阅读mysql mvcc文档
This commit is contained in:
@@ -61,4 +61,11 @@ purge操作在后台由一个或多个purge threads执行。purge threads的数
|
|||||||
`innodb_max_purge_lag`的默认值为0,代表默认不存在max purge lag。
|
`innodb_max_purge_lag`的默认值为0,代表默认不存在max purge lag。
|
||||||
|
|
||||||
|
|
||||||
|
## Multi-Versioning and Secondary Indexes
|
||||||
|
在mvcc中,对待聚簇索引和辅助索引的方式不同。在聚簇索引中,record中的列是`update in-place`,并且其hidden system columns指向undo log records,通过undo log records可以还原数据的先前版本。
|
||||||
|
|
||||||
|
但是,辅助索引不包含hidden system columns,并且对于辅助索引的更新也不是update in-place。
|
||||||
|
|
||||||
|
当辅助索引的column被更新时,旧的辅助索引记录将会被标记为delete marked,并且插入新的辅助索引记录。`delete marked index records`最终会被purge。
|
||||||
|
|
||||||
|
当辅助索引中的index record被`delete marked`或`辅助索引页被newer transaction(更新的事务)更新时,innodb将会在聚簇索引中查询记录`。
|
||||||
|
|||||||
Reference in New Issue
Block a user