今天在android中將sqlite的資料庫檔案產生在SD卡上的過程中,發現產生的.db檔案的旁邊
產生了一個大小為0的與資料庫檔案同名的.db-journal檔案,不明白此檔案的用途,於是
google了sqlite的官方文檔,發現該檔案的用途如下:
該檔案是sqlite的一個臨時的記錄檔,主要用於sqlite交易回復機制,在事務開始時產生,
在事務結束時刪除;當程式發生崩潰或者系統斷電時該檔案將留在磁碟上,以便下次程式運行
時進行交易回復。
但是我建立資料庫時將事務結束了,同時程式也沒有崩潰,為什麼還是會在磁碟上產生
.db-journal檔案呢?
深入研究,發現這是sqlite組建記錄檔檔案的不同模式造成的,在android採用的這種模式下,
.db-journal檔案是永久的留在磁碟上不會被自動清除的,如果沒有發生交易回復那麼.db-journal
檔案的大小為0,這樣就避免了每次產生和刪除.db-journal檔案的開銷。
到此,所有的疑惑解開了。
今天在android中將sqlite的資料庫檔案產生在SD卡上的過程中,發現產生的.db檔案的旁邊
產生了一個大小為0的與資料庫檔案同名的.db-journal檔案,不明白此檔案的用途,於是
google了sqlite的官方文檔,發現該檔案的用途如下:
該檔案是sqlite的一個臨時的記錄檔,主要用於sqlite交易回復機制,在事務開始時產生,
在事務結束時刪除;當程式發生崩潰或者系統斷電時該檔案將留在磁碟上,以便下次程式運行
時進行交易回復。
但是我建立資料庫時將事務結束了,同時程式也沒有崩潰,為什麼還是會在磁碟上產生
.db-journal檔案呢?
深入研究,發現這是sqlite組建記錄檔檔案的不同模式造成的,在android採用的這種模式下,
.db-journal檔案是永久的留在磁碟上不會被自動清除的,如果沒有發生交易回復那麼.db-journal
檔案的大小為0,這樣就避免了每次產生和刪除.db-journal檔案的開銷。
到此,所有的疑惑解開了。