• 技术文章 >数据库 >MySQL

    mysql中undo log的两种类型

    小妮浅浅小妮浅浅2021-09-15 09:29:15原创168

    根据行为的不同,undo log分为两种:insert undo log和update undo log

    1、insert undo log,是在insert操作中产生的。insert操作的记录只对事务本身可见。

    对于其它事务此记录是不可见的,所以 insert undo log 可以在事务提交后直接删除而不需要进行purge操作。

    2、update undo log是update或delete操作中产生。

    因为会对已经存在的记录产生影响,为了提供 MVCC机制,因此 update undo log 不能在事务提交时就进行删除,而是将事务提交时放到入 history list 上,等待 purge 线程进行最后的删除操作

    为了更好的支持并发,InnoDB的多版本一致性读是采用了基于回滚段的的方式。另外,对于更新和删除操作,InnoDB并不是真正的删除原来的记录,而是设置记录的delete mark为1。因此为了解决数据Page和Undo Log膨胀的问题,需要引入purge机制进行回收

    为了保证事务并发操作时,在写各自的undo log时不产生冲突,InnoDB采用回滚段的方式来维护undo log的并发写入和持久化。回滚段实际上是一种 Undo 文件组织方式

    以上就是mysql中undo log的两种类型,希望对大家有所帮助。更多mysql学习指路:MySQL

    推荐操作系统:windows7系统、mysql5.8、DELL G3电脑

    专题推荐:mysql undolog
    品易云
    上一篇:mysql中InnoDB的MVCC实现 下一篇:mysql行锁的特点

    相关文章推荐

    • mysql组复制的工作原理• mysql组复制有什么特点• mysql组复制的应用场景• mysql如何启动组复制• mysql组复制有哪些用处• mysql视图view的特点• mysql修改视图的方法• mysql视图如何使用• mysql存储过程的特点• mysql错误日志是什么• mysql自增值保存的位置• mysql自增值如何修改• mysql自增主键用完的处理办法• mysql中InnoDB的MVCC实现

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网