我在寻求一条建议。目前,我们正在开发用于外出服务的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。在这个框架中,查询非常优化。 –