我的離線應用程序中有一個sqlite數據庫,已達32mb。它是從資產文件啓動時創建的,大小爲6mb。如何壓縮sqlite數據庫
是否有任何內置壓縮功能,導致數據庫變得更小,我不介意讀取時的性能。它會使用更少的用戶手機內存。
任何想法?
數據庫有兩個表,大多數是長文本字段。大小是第一次應用程序啓動時插入的7000多個最終結果。
我的離線應用程序中有一個sqlite數據庫,已達32mb。它是從資產文件啓動時創建的,大小爲6mb。如何壓縮sqlite數據庫
是否有任何內置壓縮功能,導致數據庫變得更小,我不介意讀取時的性能。它會使用更少的用戶手機內存。
任何想法?
數據庫有兩個表,大多數是長文本字段。大小是第一次應用程序啓動時插入的7000多個最終結果。
你可以嘗試在你的數據庫上使用VACUUM。請參閱SQLite文檔:http://www.sqlite.org/lang_vacuum.html
是的,我看到一篇文章,但對我來說,它不適用,因爲這是7000 +插入後,我的大小。除了書籤之外,數據庫不會真正寫入。所以它不太可能會被碎片化,足以受到VACUUM的影響 – sprocket12
SQLite的FTS4擴展提供了一個壓縮選項:http://www.sqlite.org/fts3.html#section_6_1。但是,該擴展顯然只在API 11級以後出現在Android中(請參閱:http://stackoverflow.com/questions/6339022/sqlite3-fts4-match-and-android)。或者你可以在Java中進行壓縮/解壓縮。但是,這樣你將無法使用SQLite來搜索你的文本。 – tiguchi
@NobuGames可能值得一讀,因爲我針對API 11+。謝謝。 – sprocket12
@NobuGames只是一個更新,它不可能使用該選項來壓縮FTS表,因爲android不支持自定義函數。 – sprocket12