我目前正在開發一個應用程序,它有可能創建一個非常大的數據庫。我曾計劃在SD卡上安裝應用程序,以便騰出一些額外的空間。最近的交易已經告誡我,這可能不是一個好主意。我可以採取哪些措施來緩解這一行動的危險?還是有更好的選擇?在Android中處理大型數據庫
回答
這是關於這個問題的一個comprehensive post(我不是作者)。
我認爲,總體而言,需要傳達的信息是,SQLite只是一種訪問文件的SQL機制。看起來,整個APK的當前市場限制爲50mb。安裝到內存時,您需要2x的APK大小。安裝到SD卡只需要規定的APK大小。
這裏是你將致力於反對什麼:1。 )由於SQLite是剛剛超過你的文件的抽象,當你做選擇,插入,更新等,你會招致SD卡的讀寫成本 2)我已經看到基於性能提及soft limit of 10000 records。這篇文章有點老了,所以它可能會變得更好。
除此之外,您可能需要設置一些測試來查看哪些可行。谷歌粗略搜索沒有顯示任何基準迄今。
如前所述,SQLite具有您要查找的功能,打包在一個小型庫中。它旨在通過可靠的,可恢復的,通過SQL API的事務數據訪問來取代簡單的文件訪問。關於他們的main page有一個很好的總結。
有幾千個項目正在使用SQLite。如果您的數據集將會非常大(超過100-200MB),那麼您可能需要考慮使用Berkeley DB作爲選項。 Berkeley DB最近推出了支持SQL API,它完全兼容SQLite。除了SQLite SQL解析器,查詢規劃器和執行器提供的功能外,您還可以獲得Berkeley DB衆所周知的可靠性和可伸縮性。我們有幾個客戶開心地使用SQLite。當他們意識到他們需要SQLite中不具備的其他併發性,可伸縮性和可靠性時,他們用BDB庫取代了SQLite庫,重新編譯了他們的應用程序,並在幾天內在伯克利進行了測試和運行。
我是Berkeley DB的產品經理之一,所以我有點偏見。 :-)然而,我們實現了BDB SQL API,以便我們爲用戶提供兩全其美的優點:SQLite的普遍性和易用性以及Berkeley DB的併發性,可靠性和可伸縮性。特別是對於較大的數據集,Berkeley DB可以在應用程序性能方面發揮重要作用。
Berkeley DB是否適用於所有Android手機?將Android應用從SQLite切換到BDB是否容易? – 2011-01-25 05:26:36
如上所述,您可以在Android上使用Berkeley DB(不是Java版本)。我描述了交叉編譯過程here的步驟,因爲它需要較小的調整。
- 1. 大型數據庫處理
- 2. 在Python中處理數據的大型臨時數據庫
- 3. 在Android上處理大型sqlite數據庫
- 4. 策略處理大型數據庫表
- 5. Spring JPA Hibernate處理大型數據庫
- 6. 如何處理大型數據庫?
- 7. 在AngularJS中處理大型數據集
- 8. 在Python中處理大型數據池
- 9. 在birt中處理大型數據集
- 10. 處理大型數據集
- 11. 處理大型應用程序和大型數據庫
- 12. 在Android中處理數據庫
- 13. 在Android中處理大型XML文件
- 14. Android openGL:處理數組中的大型數據集(點雲)
- 15. 內存錯誤的Python在Windows上處理大型數據庫
- 16. 如何在Mysql或Infobright數據庫中處理大量數據...?
- 17. 大型數據處理錯誤和PHP
- 18. PowerShell如何處理大型數據集?
- 19. 如何處理大型數據列表
- 20. 如何在Android中清理地處理多個數據庫表?
- 21. 通過fetchedResultsController在覈心數據中處理大型基數
- 22. 如何使用Lucene處理大型數據庫?
- 23. 我應該如何處理大型數據庫(17MB)?
- 24. 如何處理大型數據庫表主鍵
- 25. Scrapy使用Scrapy處理大型數據庫
- 26. 不知道如何處理大型數據庫
- 27. 哪個數據庫(DBMS)可以最好地處理大型表?
- 28. 處理大型MySQL數據庫組織的最佳方式?
- 29. 多處理django模型數據庫
- 30. C#處理多種數據庫類型?
很好的答案。 +1。我有一個疑問,如果sqlite文件是Android的外部,那麼會有什麼限制?它是否與桌面一樣或仍然有任何限制..? – Vinay 2013-08-20 08:59:19