前言
mvcc是数据库事务重要组成部分,mvcc及lock和事务隔离级别,当然还有其它的一些底层设计,完成mysql高妙神奇的事务并发控制目标。
联系方式
微信公众号

微信

培训课件
(收费20元已共享到百度云盘便于同学们获取)


目录
mysql mvcc官方手册
数据库实现并发事务控制2种类型
mysql mvcc基本概念
mysql mvcc内部实现简述
undo segment之tablespace的undo log record2种类型
undo log record大小
定期执行事务提交减少undo segment之tablespace空间大小
delete操作与purge操作
频繁执行小批量insert及delete操作与purge操作性能延后
mysql mvcc官方手册
14 The InnoDB Storage Engine14.3 InnoDB Multi-Versioning
数据库实现并发事务控制2种类型

由于lbcc无法实现高效的读写操作互不阻塞,故mysql采用mvcc实现并发事务控制,读写操作互不阻塞,并发性能很好。
mysql mvcc基本概念
mysql mvcc就是把insert及update操作之前的表记录旧版本保存下来,在数据库会保存多个版本的表记录;基于此实现数据库事务的一些功能。一则用于事务rollback,二则构建consistent read.
mysql mvcc内部实现简述

undo segment之tablespace的undo log record2种类型
mysql有个表空间会把insert及update操作的旧版本保存起来,这个表空间在mysql 8.0未独立出来,与system字典表空间合用。大致隶属图见下:



undo log record大小
undo segment之undo log record物理大小要小于insert或update表记录的大小
定期执行事务提交减少undo segment之tablespace空间大小
否则,innodb不会丢弃事务所属的undo log record,如此会导致undo segment之tablespace会增长很大,导致空间用尽不足
delete操作与purge操作
注:delete操作后,不会马上物理删除表记录

频繁执行小批量insert及delete操作与purge操作性能延后

相关阅读
文章转载自lovedb,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




