Chinaunix首页 | 论坛 | 博客
  • 博客访问: 228074
  • 博文数量: 27
  • 博客积分: 719
  • 博客等级: 上士
  • 技术积分: 386
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-20 21:04
文章分类

全部博文(27)

文章存档

2012年(27)

分类: SQLite/嵌入式数据库

2012-04-17 16:02:54

WAL日志是数据库中一种高效的日志算法。从数据库原理而言,它实现的是redo日志模式。即修改数据库时,不直接修改数据库内容,而是将修改完的数据写入日志中,并同步到磁盘上,这样对其他读进程就没有影响。如果数据库崩溃,重启后扫描日志文件,然后更新的数据库中。为了提高效率,WAL日志模式提供checkpoint操作,来定时进行数据更新操作。

SQLite中WAL的实现也是按照上面原理来的。在更新SQLite页时,会将更新完的页同步到磁盘上,并定时进行checkpoint操作。读数据库的时候,为了读到最新的页面,需要扫描日志文件,得到最新的数据页。为了提高扫描速度,SQLite设计了一个wal-index索引来加快对WAL日志的操作速度。具体的代码实现将慢慢写出来。

阅读(23048) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

龙舌兰柠檬酒2012-04-17 16:29:33

微微伤过: 不太懂.....
嗯。你都没研究过数据库的日志机制。研究过就会懂的。

微微伤过2012-04-17 16:28:31

不太懂

龙舌兰柠檬酒2012-04-17 16:25:13

微微伤过: .....
写的怎么样?你看懂了没?

微微伤过2012-04-17 16:21:18