Если у вас есть веб-приложение, которое использует локальное хранилище настолько сильно, что оно вызывает проблемы с производительностью, я бы связался с автором веб-приложения и уведомил их, чтобы, возможно, они могли это исправить.
Тем не менее, 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 выполняются следующие действия:
- Текущие данные записываются в файл журнала.
- Новые данные записываются в файл базы данных.
- Файл журнала удален.
Если во время записи файла базы данных происходит сбой компьютера, файл журнала используется для восстановления базы данных до того, как изменения начались.