关于WAL: Write ahead log

全文在这里
http://www.cnblogs.com/daduxiong/archive/2010/08/20/1804301.html
节选

11.1. 一般性描述
  预写式日志 (WAL) 是一种实现事务日志的标准方法.有关它的详细描述可以在 大多数(如果不是全部的话)有关事务处理的书中找到.简而言之,WAL 的中心思想是对数据文件 的修改(它们是表和索引的载体)必须是只能发生在这些修改已经 记录了日志之后 –也就是说,在日志记录冲刷到永久存储器之后. 如果我们遵循这个过程,那么我们就不需要在每次事务提交的时候都把数据页冲刷到磁盘,因为我们知道在出现崩溃的情况下, 我们可以用日志来恢复数据库:任何尚未附加到数据页的记录都将先从日志记录中重做(这叫向前滚动恢复,也叫做 REDO) 然后那些未提交的事务做的修改将被从数据页中删除 (这叫向后滚动恢复 -UNDO).
  11.1.1. 从 WAL 中获取的直接好处
  使用 WAL 的第一个明显的好处就是显著地减少了磁盘写的次数.因为在日志提交的时候只有日志文件需要冲刷到磁盘; 在多用户环境里,许多事务的提交可以用日志文件的一次 fsync()来完成.而且,日志文件是顺序写的, 因此同步日志的开销要远比同步数据页的开销要小.

write ahead log 和 command log 的比较:WAL直接log block data,command log 操作
http://stackoverflow.com/questions/14181180/why-do-sql-databases-use-a-write-ahead-log-over-a-command-log

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值