2015-04-07 53 views
0

我在尋求一條建議。目前,我們正在開發用於外出服務的Android客戶端。服務產生很多動態信息,並且必須存儲在用戶手機上,以便在不連接網絡的情況下訪問它。在iOS客戶端,我們使用restKit實現了這一點。在Android上,我發現沒有像restKit這樣的工具。所以有2個選項 - 使用sqlite數據庫或緩存最後的json響應。我想使用sqlite數據庫,但我們的android開發人員傷心,它不穩定和緩慢。他對嗎?什麼做法更好?
第二個問題是我找到了一個sqlite編輯器應用程序,它允許在手機上編輯sqlite數據庫。有什麼辦法可以避免這種情況?Android上的Sqlite - 它使用穩定,並且它工作得很快嗎?

+0

就我個人而言,我建議您使用SQLite和ORMLite。在這個框架中,查詢非常優化。 –

回答

0

您可以使用SQLite,因爲SQLite能夠非常快速。如果您看到的速度比其他數據庫系統(如MySQL或PostGres)慢,那麼您並未充分利用SQLite的潛力。優化速度看起來是SQLite的作者和維護者D. Richard Hipp的第二優先級。首先是數據完整性和可驗證性。

你應該知道的第一件事是SQLite(和大多數其他數據庫系統)花費的大部分時間都在磁盤訪問上,這比內存操作慢。所以優化SQLite的關鍵是儘量減少所需的磁盤訪問量。這需要了解SQLite何時訪問磁盤上的信息,以及爲什麼。由於操作系統通常會將打開的磁盤文件緩存在內存中,因此仔細調整SQLite的使用可以提高純內存數據庫的速度。

如果您不熟悉優化,您必須知道,針對速度進行優化的唯一可靠方法是衡量時間花在何處。除非你已經熟悉SQLite的這種做法,否則你經常會猜錯。儘可能對代表性的例子進行定量測試。不幸的是,重複測量磁盤訪問應用程序的性能並不是微不足道的。 但是很難使用緩存毫無疑問,緩存很快,但不適用於大數據和數據無法長時間存儲在緩存中。因此,如果您希望該用戶將離線使用您的應用程序,那麼您應該將數據放在SQLite上進行優化處理。 希望這會幫助你。

相關問題