我目前正在开发一个应用程序,它有可能创建一个非常大的数据库。我曾计划在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