2013-05-14 286 views
1

如果我设置journal_size_limit = 67110000(64兆),我将能够:关于SQLite的journal_size_limit澄清

  1. 工作与/提交超过该值(有点不太可能)
  2. 能够成功地执行VACUUM交易(即使该数据库有像3吉布或多个)

通过复制数据库的内容的真空命令作品成 一个tempor ary数据库文件,然后用临时文件的 内容覆盖原始文件。覆盖原稿时,使用 回滚日志或预写日志WAL文件,就像 适用于任何其他数据库事务一样。这意味着时 VACUUMing一个数据库,在自由磁盘空间需要数据库文件的两倍大小的原始数据库文件。

这在文档中并不完全清楚,如果有人能够肯定地告诉我,我将不胜感激。

回答

1

journal_size_limit不是交易日志的上限;它是不活动的交易日记的上限。

交易完成后,不需要日记,但删除日志可以使事情更快,因为文件系统并不需要释放这些数据,然后分配给它下一个事务。

此设置的目的是限制未使用的日志数据的大小

+0

* Inactive *是关键字在这里,谢谢你清理。 – 2013-05-14 16:58:11