2

If I set journal_size_limit = 67110000 (64 MiB) will I be able to:

  1. work with / commit transactions over that value (somewhat unlikely)
  2. be able to successfully perform a VACUUM (even if the database has like 3 GiB or more)

The VACUUM command works by copying the contents of the database into a temporary database file and then overwriting the original with the contents of the temporary file. When overwriting the original, a rollback journal or write-ahead log WAL file is used just as it would be for any other database transaction. This means that when VACUUMing a database, as much as twice the size of the original database file is required in free disk space.

It's not entirely clear in the documentation, and I would appreciate if someone could tell me for sure.

4

1 に答える 1

4

これjournal_size_limitはトランザクション ジャーナルの上限ではありません。これは、非アクティブなトランザクション ジャーナルの上限です。

トランザクションが終了した後、ジャーナルは必要ありませんが、ファイル システムがこのデータを解放して次のトランザクションのために再割り当てする必要がないため、ジャーナルを削除しないと処理が速くなります。

この設定の目的は、未使用のジャーナル データのサイズを制限することです。

于 2013-05-14T16:55:44.960 に答える