我想知道爲什麼SQLite在path中創建兩個文件,這些文件有什麼區別。SQLite數據庫文件
我有一個數據庫名稱mydatabase
。
當我在給定的路徑中看到有兩個文件。
data/data/pack name/databases/....
mydatabase
1-
2- mydatabase-journal
我想知道爲什麼SQLite在path中創建兩個文件,這些文件有什麼區別。SQLite數據庫文件
我有一個數據庫名稱mydatabase
。
當我在給定的路徑中看到有兩個文件。
data/data/pack name/databases/....
mydatabase
1-
2- mydatabase-journal
mydatabase
是主數據庫文件,其中包含有關該數據庫的一切。
mydatabase-journal
是日誌文件。它在默認情況下不存在,只有在必要時才由SQLite創建,以保持SQLite想要對數據庫執行的意向日誌。基本上,這是交易完成後應該對主數據庫文件做什麼的意圖。如果您正常完成所有事務並正常斷開與數據庫的連接,則-journal
文件通常會自動刪除。
如果斷開唐突 - 像過程殺死或崩潰,-journal
文件將保留,不應該被刪除。如果下一次的SQLite再次打開這個數據庫,它會注意到-journal
文件的存在和將重播或回滾未完成的事務,以使主數據庫文件是一致的,並沒有損壞。
如果手動刪除文件-journal
,恢復並不能完全保證數據庫可能被完全破壞 - 所以,不要刪除-journal
文件。
正確擺脫-journal
文件也許最簡單的方法就是做這個命令:
sqlite3 mysqlitedatabase.db VACUUM
將真空(優化)你的數據庫,並應只留下主文件作爲一個結果。
謝謝answer.mvp – Unknown