Ответ 1
Я предлагаю вам использовать недавно реализованный WAL
journal_mode
. Таким образом, вы можете оставить synchronous
до normal
и записать все записи, записанные на диск:
Записывать транзакции очень быстро, поскольку они включают только запись контента один раз (против дважды для транзакций с откатом-журналом) и потому что записи все последовательны. Кроме того, синхронизация содержимого с диск не требуется, если приложение желает долговечность после потери мощности или жесткой перезагрузки. (Writers синхронизировать WAL при каждой транзакции, если установлен PRAGMA синхронный для FULL, но опустите эту синхронизацию, если PRAGMA synchronous установлен на NORMAL.)
Вышеизложенное взято из:
http://www.sqlite.org/wal.html
Если этого недостаточно, вы все равно можете вызвать PRAGMA database.wal_checkpoint;
, когда хотите быть уверенным, что ваши записи не только записываются на диск, но также "интегрированы" в вашу БД. Для получения дополнительной информации проверьте следующее: