数据库系列xx-一条更新SQL执行流程

2019-11-22  本文已影响0人  xgangzai

这篇笔记主要目的是梳理清楚,一条数据的落地,中间会在哪些组件中有写入

已知的有redo log, undo log, 索引,数据文件,写入的顺序是怎么样,完成到哪个步骤,就可认为事务算是结束了。数据恢复,当数据库意外down机后,重启后怎么恢复数据,有哪些场景会导致数据丢失(恢复不了)

主要是对这篇文章https://www.slideshare.net/MariaDB/m18-deep-dive-innodb-transactions-and-write-paths的翻译整理

A Detailed Look at a Single-ROW AUTOCOMMIT Trasaction:

UPDATE talk SET attendees =25 WHERE conference='M|18' AND name = 'Deep Dive';

Step 1:SQL 层

Step 2a:通过引擎接口读取数据

Step 2b: 过滤行

Step 2c: 获取所有匹配行的锁

Step 3a: 记录Undo log

Step 3b: 更新所有匹配的行

Step 4a: 提交

可能的Step 4a: 回滚

Step 4b: 清理

这一套又是好复杂的东西 骑马得看好几天。。。。。。

上一篇下一篇

猜你喜欢

热点阅读