1条回答
默认
最新
回答交流
Markdown
请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~

MySQL在事务执行过程中会产生哪两种Undo Log?
在事务执行过程中会产生两种Undo Log:
1、insert的undo记录。insert是不需要Purge线程的,只要事务提交了,就可以丢掉回滚记录。
2、update的undo记录(delete也算在这里面)。delete实际上不会直接执行删除,而update是将delete对象打上delete flag标记,最终的delete操作是由Purge线程完成的。
update Undo Log又分为两种情况,即判断update的列是否为主键。
如果不是主键列,则在Undo Log中直接反向记录是如何update的,即update是直接进行的。
如果是主键列,则update分两步执行,先删除旧的行,再插入新的数据。