开发者社区 > 数据库 > 正文

什么是预写日志(Write Ahead Log,WAL)?

已解决

什么是预写日志(Write Ahead Log,WAL)?

展开
收起
云上静思 2022-09-08 16:53:08 421 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    数据库早期都是为了传统磁盘而设计的,而传统磁盘的顺序访问性能远高于随机读写。用户的更新一般都是比较随机地更新一些页面,如果每更新一个页面提交就要把相应的页面刷到磁盘,则会引发大量的随机I/O,也无法保证页内并发事务的原子性,例如多个事务同时更新页面时,一个事务提交后不能立即刷下页面,因为可能包含其他未提交事务。因此在更新页面时,只会在内存缓存中原地更新页面内容,同时记录事务的操作日志,保证在事务提交时操作日志先于页面内容刷到磁盘,这种技术被称为预写日志(Write Ahead Log,WAL)

    以上内容摘自《云原生数据库原理与实践》,这本书可以在电子工业出版社天猫店购买。

    2022-09-08 18:00:48
    赞同 展开评论 打赏

数据库领域前沿技术分享与交流

相关电子书

更多
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
Kubernetes下日志实时采集、存储与计算实践 立即下载
日志数据采集与分析对接 立即下载