Innodb 之 Undo log 作用

Innodb 之 Undo log 作用,第1张

Innodb 之 Undo log 作用

Undo log 是 MySQL Innodb 引擎中最重要的一个组成部分,它的作用贯穿于 Innodb 两个最主要的部分:并发控制(Concurrency Control)和故障恢复(Crash Recovery)。

undo log 的作用:

    事务回滚
    undo log 记录了数据修改之前的历史值。故障发生时,为了保证原子性,恢复线程执行 undo log,将数据还原到之前的状态。MVCC 多版本并发控制(Multi-Versioin Concurrency Control)
    通常知道,并发环境下,修改数据需要加写锁,写锁和任何锁都冲突。如果不加机制,任由写锁和读锁冲突,会影响读的性能。提高并发访问能力的手段之一,就是避免只读事务和写事务之间的冲突。新的写入,新增一个版本号。为每条记录保存多份历史数据,供读事务访问。而只读事务,不需要加读锁,通过 undo log 回溯到可见的历史版本,就获得一致性读,效果等同于加了读锁。Innodb 复用了 undo log 记录的历史版本,来满足 MVCC 的需求

MySQL · 引擎特性 · 庖丁解InnoDB之UNDO LOG

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5718857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存