MySQL事务底层原理
文章平均质量分 88
基于mysql的事务来说明底层的相关设计
析道者
To be or not to be,It's a question.
展开
-
2-3-6-2、undo 日志
事务需要保证原子性,也就是事务中的操作要么全部完成,要么什么也不做。这两种情况都会导致事务执行到一半就结束,但是事务执行过程中可能已经修改了很多东西,为了保证事务的原子性,需要把东西改回原先的样子,这个过程就称之为回滚(英文名:rollback),这样就可以造成这个事务看起来什么都没做,所以符合原子性要求每当要对一条记录做改动时(这里的改动可以指 INSERT、DELETE、UPDATE),都需要把回滚时所需的东西都给记下来。原创 2023-12-25 16:50:05 · 893 阅读 · 0 评论 -
2-3-6-1、redo 日志
在事务的实现机制上,MySQL 采用的是 WAL(Write-ahead logging,预写式日志)机制来实现的在使用 WAL 的系统中,所有的修改都先被写入到日志中,然后再被应用到系统中。通常包含 redo 和 undo 两部分信息redo log 称为重做日志,每当有操作时,在数据变更之前将操作写入 redo log,这样当发生掉电之类的情况时系统可以在重启后继续操作undo log 称为撤销日志,当一些变更执行到一半无法完成时,可以根据撤销日志恢复到变更之间的状态。原创 2023-05-02 17:12:27 · 1038 阅读 · 1 评论