10、innodb undo log

Undolog是MySQL实现事务原子性和MVCC机制的关键,它通过回滚段管理日志,每个回滚段包含多个undologsegment。默认情况下,undolog存储在ibdata1文件中,但可以通过配置指定单独的undo文件。事务完成后,insert操作的undolog会立即清除,而update和delete的undolog则需等待无其他事务依赖时才能清除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值