這兩天因爲項目須要開始使用sqlite數據庫,但是在操做過程當中,在databases文件下生成*.db的同時總會對應生成一個*.db-journal。剛開始在網上查找緣由,網上有人說是數據庫操做錯誤時生成的日誌,但是再怎麼仔細檢查,都發現我對數據庫的操做都是正確的,不會有異常,並且*.db-journal文件的大小一直是0.android
後來看了下sqlite的官方文檔,發現該文件是sqlite的一個臨時的日誌文件,主要用於sqlite數據庫的事務回滾操做了。在事務開始時產生,在事務操做完畢時自動刪除,當程序發生崩潰或一些意外狀況讓程序非法結束時,此文件便保存在了磁盤上,以便下次運行時進行事務回滾。
sql
而android本身的一些機制,又使*.db-journal一直存在。即第一次操做數據庫時,*.db-journal文件會被自動建立,且是永久的保存在磁盤中,不會被自動清除的,若是沒有操做異常或者不須要事務回滾時,此文件的大小爲0。這種機制避免了每次生成和刪除*.db-journal文件的開銷數據庫