2011-07-26 74 views
3

從性能的角度來看,無論其他方面的限制:SQLiteDatabase Android的性能問題

什麼是在整個應用程序生命週期打開一個SQLiteDatabase的成本是多少?


是否值得努力打開/關閉每次需要(和維護狀態)?

回答

0
  1. 打開數據庫一次=>一打開/關閉
  2. 打開數據庫多次=>多個打開/關閉

在1)和2)時,存儲器的成本是數據庫打開時相同。所以2)顯然比這個非常簡化的假設更加昂貴。

+1

但是數據庫在整個流程週期中開放肯定會有一些成本? –

+0

內存。但這並不影響「表現」。 – Mat

1

如果您使用SQLiteOpenHelper,它會緩存您的數據庫對象,這意味着它將僅打開一次並僅關閉一次。您隨後可以隨時隨地使用getReadableDatabase()getWriteableDatabase(),因爲您將使用緩存的數據庫。

SQLiteOpenHelper也使得創建,打開和升級(以及使用API​​ 11降級)數據庫變得非常簡單,並且是Google推薦的使用SQLite的方式。