Se você tiver um aplicativo Web que esteja usando tanto o armazenamento local que cause problemas de desempenho, entre em contato com o autor do aplicativo Web e avise-o, para que talvez eles possam corrigi-lo.
No entanto, SQLite faz ter um modo desde a versão 3.7.0 chamado registro de write-ahead , que utiliza menos operações fsync. Como as versões mais recentes do Chrome e Firefox usam pelo menos a versão 3.7.0 do SQLite, você pode definir o modo WAL no banco de dados de armazenamento local e deve persistir quando o Chrome e o Firefox começarem a usá-lo.
Você precisará do executável sqlite3 . Feche o Chrome primeiro e execute os seguintes comandos:
sqlite3 path/to/localstorage.sqlite
sqlite> PRAGMA journal_mode=WAL;
sqlite> .quit
(Ao executar o PRAGMA
comando, você deve recuperar o resultado " wal
".)
Os mesmos comandos seria usado para definir o modo WAL para o banco de dados Firefox, substituindo webappstore.sqlite
para localstorage.sqlite
.
Para desfazer essa configuração, execute os mesmos comandos, exceto o uso PRAGMA journal_mode=DELETE;
.
Observe que eu mesmo não tentei; meu palpite é que funcionará bem, mas peço que faça backup do arquivo do banco de dados antes de tentar.
Como um aparte, os *.sqlite-journal
arquivos que você está vendo no Filemon fazem parte de como o SQLite executa uma confirmação atômica . Por padrão, o arquivo de diário existe apenas por um período muito curto. Ao confirmar uma alteração em um banco de dados SQLite, ocorrem as seguintes ações:
- Os dados atuais são gravados no arquivo do diário.
- Os novos dados são gravados no arquivo de banco de dados.
- O arquivo do diário é excluído.
Se o computador travar no meio da gravação do arquivo do banco de dados, o arquivo de diário será usado para recuperar o banco de dados antes do início da alteração.
PRAGMA journal_mode=OFF
(ao contrário do WAL, executá-lo no programa sqlite3 não o configurará para outros programas). Isso provavelmente exigiria que você recompile esses navegadores da fonte. O tamanho do diário depende do tamanho das alterações que estão sendo feitas; para esta aplicação, os periódicos devem ser bem pequenos.