知识卡片

Physiological Logging是记法的折中

普通读书笔记卡

内容

数据库日志有逻辑记法(记原始SQL或行改前改后值)和物理记法(记某Page哪个字节区间被改成什么)。纯逻辑日志难以判断崩溃恢复时哪些Page已写成功;纯物理日志太大(一条逻辑修改对应多条物理日志)。InnoDB的Redo Log采用折中方案:先以Page为单位组织日志,Page内部再用逻辑记法记”哪一行被改了”。发散:两极端各有硬伤时,答案往往是分层——外层一种粒度、内层嵌套另一种粒度。

参考来源

- 位置:第6章《数据库》6.5.3节「Physiological Logging」(源文件:_epub-src/text/part0030.html) - 结论依据:原文明确说明纯粹逻辑日志宕机后不好恢复,纯物理日志太大(一条逻辑日志可能对应多条物理日志),Redo Log综合了两种记法优点——先以Page为单位记录日志,每个Page内再用逻辑记法,直接支持卡片对Physiological Logging是记法折中的论述。 - 原始内容:"纯粹的逻辑日志宕机后不好恢复;物理日志又太大,一条逻辑日志就可能对应多条物理日志。Physiological Logging综合了两种记法的优点,先以Page为单位记录日志,在每个Page里面再采用逻辑记法。"