2013-05-14 7 views
1

Если установить journal_size_limit = 67110000 (64 МиБ) я буду в состоянии:Разъяснение относительно journal_size_limit в SQLite

  1. работы с/совершать сделки в течение этого значения (несколько маловероятно)
  2. быть в состоянии успешно выполнить VACUUM (даже если база данных имеет как 3 ГиБ или более)

командной VACUUM работы путем копирования содержимого базы данных в Tempor ary, а затем перезаписать оригинал с содержимым временного файла . При перезаписывании оригинала используется журнал отката или файл WAL с записью на запись, как это было бы для для любой другой транзакции базы данных. Это означает, что , когда ВАКУУМИРОВАНИЕ базы данных, в два раза превышающей размер исходного файла файла базы данных, требуется на свободном диске.

Это не совсем ясно в документации, и я был бы признателен, если бы кто-то мог сказать мне точно.

ответ

1

journal_size_limit не является верхним пределом в журнале транзакций; это верхний предел для неактивного журнала транзакций.

После завершения сделки журнал не нужен, но не Удаление журнала может ускорить работу, поскольку файловой системе не нужно освобождать эти данные, а затем перераспределять ее для следующей транзакции.

Цель этой настройки - ограничить размер не использовался данные журнала.

+0

* Неактивный * является ключевым словом здесь, благодарю вас за это. –