undo log 回滚日志,用于在事务失败时进行数据回滚,实现原子性的特性。同时也是实现MVCC机制的基础。
undo log模型
采用分段的方式管理(segment),最大可支持128个回滚段 rollback segment(5.6之后),之前只支持一个。
每个回滚段内有1024个undo log segment,每个事务会使用一个undo log segment。
也就是最大事务为128*1024个
默认与系统表空间共用文件,ibdata1,当配置文件后,会独立出undo文件
配置参数
-- 设置undo log文件所在的路径,默认共用系统表空间ibdata1
innodb_undo_directory
-- 设置undo log文件内部回滚段的个数,默认值为128。
innodb_undo_logs
-- 设置undo log文件的数量,回滚段总数不变,会均匀分配到文件中
innodb_undo_tablespaces
undo log 清除时机
insert 事务完成后就会被清除
update、delete 事务完成后,需要等到没有其他事务使用时才可清除(MVCC)