如果我设置journal_size_limit = 67110000
(64 MiB),我将能够:
- 处理/提交超过该值的事务(不太可能)
- 能够成功执行
VACUUM
(即使数据库有3 GiB或更多)
VACUUM命令的工作原理是将数据库的内容复制到创建一个临时数据库文件,然后用临时文件的内容。当覆盖原始文件时,a回滚日志或预写日志WAL文件按原样使用对于任何其他数据库事务。这意味着当对数据库进行真空清理,其大小相当于原来的两倍.
在文档中没有完全清楚,如果有人能告诉我肯定的话,我将不胜感激。
journal_size_limit
不是事务日志的上限;非活动事务日志的上限。
事务完成后,不再需要日志,但是而不是删除日志可以使事情更快,因为文件系统不需要释放这些数据,然后为下一个事务重新分配。
此设置的目的是限制未使用的日志数据的大小。