2012-09-14 10 views
3

我有一個服務,在應用程序的SQLite數據庫中創建記錄,處理數據,並從SQLite數據庫中刪除記錄。我如何使用SQLite數據庫,使其不會不斷增長

我發現SQLite數據庫隨着時間的推移(可能一週)增長,儘管其中的記錄數量保持相當穩定。

問題 在不增長數據庫的情況下添加和刪除記錄的最佳做法是什麼?

插入一條記錄我使用: result = mDB.insert(table, null, kvpairs);

要刪除我用一個記錄: result = mDB.delete(table, where, null);

參考

Android SQLiteDatabase insert

Android SQLiteDatabase delete

+0

如果你介意我很好奇看到增長的速度;你可以在DB文件增長之前,增長之後添加DB文件的大小,每種情況下記錄的數量,甚至更好,在CL提到的時候運行'VACUUM',併發布DB的結果大小。 – 2012-09-14 18:07:22

+0

VACUUM運行時會創建數據庫的副本,因此在執行VACUUM時它的大小不會顯着增加。此時APP性能會下降。那麼是否還有其他選擇來減少數據庫大小? – DJhon

回答

3

數據庫中的免費頁面將被重複使用,因此增長不會無限制。

您可以嘗試更新記錄,但如果您不能將舊映射映射到新記錄或某些值更改其大小,這將無濟於事。

定期嘗試運行VACUUM,和/或啓用PRAGMA auto_vacuum

相關問題