我在尋求一條建議。目前,我們正在開發用於外出服務的Android客戶端。服務產生很多動態信息,並且必須存儲在用戶手機上,以便在不連接網絡的情況下訪問它。在iOS客戶端,我們使用restKit實現了這一點。在Android上,我發現沒有像restKit這樣的工具。所以有2個選項 - 使用sqlite數據庫或緩存最後的json響應。我想使用sqlite數據庫,但我們的android開發人員傷心,它不穩定和緩慢。他對嗎?什麼做法更好?
第二個問題是我找到了一個sqlite編輯器應用程序,它允許在手機上編輯sqlite數據庫。有什麼辦法可以避免這種情況?Android上的Sqlite - 它使用穩定,並且它工作得很快嗎?
0
A
回答
0
您可以使用SQLite,因爲SQLite能夠非常快速。如果您看到的速度比其他數據庫系統(如MySQL或PostGres)慢,那麼您並未充分利用SQLite的潛力。優化速度看起來是SQLite的作者和維護者D. Richard Hipp的第二優先級。首先是數據完整性和可驗證性。
你應該知道的第一件事是SQLite(和大多數其他數據庫系統)花費的大部分時間都在磁盤訪問上,這比內存操作慢。所以優化SQLite的關鍵是儘量減少所需的磁盤訪問量。這需要了解SQLite何時訪問磁盤上的信息,以及爲什麼。由於操作系統通常會將打開的磁盤文件緩存在內存中,因此仔細調整SQLite的使用可以提高純內存數據庫的速度。
如果您不熟悉優化,您必須知道,針對速度進行優化的唯一可靠方法是衡量時間花在何處。除非你已經熟悉SQLite的這種做法,否則你經常會猜錯。儘可能對代表性的例子進行定量測試。不幸的是,重複測量磁盤訪問應用程序的性能並不是微不足道的。 但是很難使用緩存毫無疑問,緩存很快,但不適用於大數據和數據無法長時間存儲在緩存中。因此,如果您希望該用戶將離線使用您的應用程序,那麼您應該將數據放在SQLite上進行優化處理。 希望這會幫助你。
0
否根據經驗SQLite是Android設備本身使用的最可靠的數據庫。它沒有單獨的服務器進程,它直接讀/單個磁盤文件。
相關問題
- 1. 動態Linq:它穩定嗎?
- 2. 我的android活動凍結並且運行緩慢。我需要使它穩定
- 3. NHibernate LINQ是否穩定,並且所有的NHibernate項目都允許使用它
- 4. testflightapp.com,它是如何工作的,我可以假設它是安全的並且工作時間更長嗎?
- 5. jQuery在Mac上工作得很好嗎?
- 6. FMDatabase dateForColumn,它工作嗎?
- 7. Android:ListView.getScrollY() - 它工作嗎?
- 8. Android應用程序命名約定 - 它真的很重要嗎?
- 9. Ruby,Rails:mysql2寶石,有人使用這個寶石?它穩定嗎?
- 10. SlowCheetah - 得到它的工作
- 11. git - 它在圖像上工作嗎?
- 12. Cocos2d v 0.99 - 它在OS3上工作嗎?
- 13. 2.8中的NotNull特徵如何工作,並且有人真的使用它?
- 14. GLPaint - 它真的很慢嗎?
- 15. 爲什麼迭代器失敗的速度很快,它們真的失敗得很快嗎?
- 16. 我可以在C++中使用Android NDK創建位圖並將它們傳遞給Java真的很快嗎?
- 17. 查看分頁有很多圖像,它可以工作嗎?
- 18. gltf模型失去了它的照明,並且很暗
- 19. [email protected] - 它工作嗎?
- 20. MIPS - 它很重要嗎?
- 21. 我的CSS定位不穩定。我該如何穩定它?
- 22. 爲什麼我的CSS現在不能工作,昨晚它工作得很好
- 23. 採取值並且使用它作爲索引
- 24. 用於Office的Microsoft Visual Studio工具。它值得使用嗎?
- 25. OFX4J解析異常它工作得很好 - 骨料SONRS
- 26. Symfony2 Eclipse插件,很難讓它工作?
- 27. jQuery UI庫:它值得使用嗎?
- 28. Yii2:安裝codeception並且PHPUnit會與作曲家,並用它
- 29. Vista上的SBCL崩潰。你知道如何使它工作嗎?
- 30. Eclipse語法突出顯示:試圖爲它指定一個新的文件擴展名,並且它不工作
就我個人而言,我建議您使用SQLite和ORMLite。在這個框架中,查詢非常優化。 –