Если у вас есть веб-приложение, которое использует локальное хранилище настолько сильно, что оно вызывает проблемы с производительностью, я бы связался с автором веб-приложения и уведомил их, чтобы, возможно, они могли это исправить.
Тем не менее, SQLite имеет режим, начиная с версии 3.7.0, называемый журналом записи с опережением, который использует меньше операций fsync. Поскольку более новые версии Chrome и Firefox используют как минимум версию 3.7.0 SQLite, вы можете установить режим WAL в своей локальной базе данных хранения, и он должен сохраняться, когда Chrome и Firefox начнут его использовать.
Вам понадобится исполняемый файл sqlite3. Сначала закройте Chrome, затем выполните следующие команды:
sqlite3 path/to/localstorage.sqlite
sqlite> PRAGMA journal_mode=WAL;
sqlite> .quit
(Когда вы запускаете команду PRAGMA
, вы должны получить результат " wal
".)
Эти же команды будут использоваться для установки режима WAL для базы данных Firefox, заменив webappstore.sqlite
на localstorage.sqlite
.
Чтобы отменить этот параметр, запустите те же команды, за исключением использования PRAGMA journal_mode=DELETE;
,
Обратите внимание, что я не пробовал это сам; Я думаю, что это будет работать нормально, но я призываю вас сделать резервную копию файла базы данных, прежде чем пытаться это сделать.
Кроме того, файлы *.sqlite-journal
которые вы видите в Filemon, являются частью того, как SQLite выполняет атомарный коммит. По умолчанию файл журнала существует только в течение очень короткого времени. При внесении изменений в базу данных SQLite выполняются следующие действия:
- Текущие данные записываются в файл журнала.
- Новые данные записываются в файл базы данных.
- Файл журнала удален.
Если во время записи файла базы данных происходит сбой компьютера, файл журнала используется для восстановления базы данных до того, как изменения начались.