关于SQLite中journal_size_limit的澄清



如果我设置journal_size_limit = 67110000 (64 MiB),我将能够:

  1. 处理/提交超过该值的事务(不太可能)
  2. 能够成功执行VACUUM(即使数据库有3 GiB或更多)

VACUUM命令的工作原理是将数据库的内容复制到创建一个临时数据库文件,然后用临时文件的内容。当覆盖原始文件时,a回滚日志或预写日志WAL文件按原样使用对于任何其他数据库事务。这意味着当对数据库进行真空清理,其大小相当于原来的两倍.

在文档中没有完全清楚,如果有人能告诉我肯定的话,我将不胜感激。

journal_size_limit不是事务日志的上限;非活动事务日志的上限。

事务完成后,不再需要日志,但是而不是删除日志可以使事情更快,因为文件系统不需要释放这些数据,然后为下一个事务重新分配。

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

相关内容

  • 没有找到相关文章

最新更新