什么是预写日志(Write Ahead Log,WAL)?
数据库早期都是为了传统磁盘而设计的,而传统磁盘的顺序访问性能远高于随机读写。用户的更新一般都是比较随机地更新一些页面,如果每更新一个页面提交就要把相应的页面刷到磁盘,则会引发大量的随机I/O,也无法保证页内并发事务的原子性,例如多个事务同时更新页面时,一个事务提交后不能立即刷下页面,因为可能包含其他未提交事务。因此在更新页面时,只会在内存缓存中原地更新页面内容,同时记录事务的操作日志,保证在事务提交时操作日志先于页面内容刷到磁盘,这种技术被称为预写日志(Write Ahead Log,WAL)
以上内容摘自《云原生数据库原理与实践》,这本书可以在电子工业出版社天猫店购买。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。