Nếu bạn có một ứng dụng web đang sử dụng bộ nhớ cục bộ nặng đến mức gây ra vấn đề về hiệu suất, tôi sẽ liên hệ với tác giả ứng dụng web và cho họ biết, vì vậy có lẽ họ có thể khắc phục nó.
Tuy nhiên, SQLite không có một chế độ kể từ phiên bản 3.7.0 gọi là write-ahead khai thác gỗ trong đó sử dụng ít hoạt động fsync. Do cả hai phiên bản Chrome và Firefox mới hơn đều sử dụng ít nhất phiên bản 3.7.0 của SQLite, bạn có thể đặt chế độ WAL trên cơ sở dữ liệu lưu trữ cục bộ của mình và phải duy trì khi Chrome và Firefox bắt đầu sử dụng.
Bạn sẽ cần thực thi sqlite3 . Đóng Chrome trước , sau đó chạy các lệnh sau:
sqlite3 path/to/localstorage.sqlite
sqlite> PRAGMA journal_mode=WAL;
sqlite> .quit
(Khi bạn chạy PRAGMAlệnh, bạn sẽ nhận lại kết quả " wal".)
Các lệnh tương tự sẽ được sử dụng để đặt chế độ WAL cho cơ sở dữ liệu Firefox, thay thế webappstore.sqlitecho localstorage.sqlite.
Để hoàn tác cài đặt này, hãy chạy các lệnh tương tự, ngoại trừ sử dụng PRAGMA journal_mode=DELETE;.
Xin lưu ý rằng tôi đã không thử điều này bản thân mình; Tôi đoán là nó sẽ hoạt động tốt, nhưng tôi khuyên bạn nên sao lưu tệp cơ sở dữ liệu trước khi thử.
Bên cạnh đó, các *.sqlite-journaltệp bạn đang thấy trong Filemon là một phần trong cách SQLite thực hiện cam kết nguyên tử . Theo mặc định, tệp nhật ký chỉ tồn tại trong một thời gian rất ngắn. Khi cam kết thay đổi cơ sở dữ liệu SQLite, các hành động sau sẽ xảy ra:
- Dữ liệu hiện tại được ghi vào tệp tạp chí.
- Dữ liệu mới được ghi vào tệp cơ sở dữ liệu.
- Các tập tin tạp chí bị xóa.
Nếu máy tính gặp sự cố khi ghi tệp cơ sở dữ liệu, tệp nhật ký được sử dụng để khôi phục cơ sở dữ liệu trở lại trước khi thay đổi bắt đầu.