Mysql 什么是 undo log 日志版本链 ?

请尝试在评论区里写下答案(如不能清楚表述,那么你可能没真正理解)。欢迎参与,为下一次求职做准备。

请用自己的语言描述出来,而非直接粘贴复制八股文,感谢 :bowtie:

明天我们吃什么 悲哀藏在现实中 Tacks
讨论数量: 1

undo log 顾名思义,就是『撤销日志』,或者 『回滚日志』,它是 Innodb 引擎中特有的,对事务非常重要的日志之一。

那版本链又是什么? 简单来说,undo log 每次记录的是一条数据行的增/删/改的状态,如果多个事务同一条记录行进行增删改操作,对某条记录行的多个 undo log 就形成一个版本链,链链链,肯定需要一个东西串起来,想到了吧,编程里面用链表就行,具体Mysql的解决方案可以接着向下看。作用可以理解为提供一个 历史操作记录,便于恢复回滚操作,当然在 Mysql 中还有一个很重要的作用,就是根据隔离等级来提供 readview 一致性视图。

2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!