我正在征求意见。目前,我们正在开发用于服务的Android客户端。服务产生类似于大量动态信息,并且必须存储在用户电话上,以便无需连接到网络即可访问。在iOS客户端上,我们使用restKit实现了这一点。在android上我发现没有像restKit这样的工具。所以有2个选项 - 使用sqlite db或cache last json response。我想使用sqlite db,但我们的android开发人员感到遗憾的是它不稳定而且速度慢。他是对的吗?什么做法更好?
第二个问题是我找到了一个sqlite编辑器应用程序,它允许在手机上编辑sqlite数据库。有什么方法可以避免这种情况吗?
答案 0 :(得分:0)
您可以使用SQLite,因为SQLite能够非常快。如果您看到速度比其他数据库系统(如MySQL或PostGres)慢,那么您就没有充分利用SQLite。优化速度似乎是D. Richard的第二优先考虑,他是SQLite的作者和维护者。首先是数据完整性和可验证性。
您应该知道的第一件事是,SQLite(以及大多数其他数据库系统)花费的大部分时间都在磁盘访问上,与内存操作相比,这一点很慢。因此,优化SQLite的关键是最小化所需的磁盘访问量。这需要了解SQLite何时访问磁盘上的信息以及原因。因为操作系统通常会在内存中缓存打开的磁盘文件,所以仔细调整使用SQLite可以接近纯内存数据库的速度。
如果您不熟悉优化,您必须知道优化速度的唯一可靠方法是测量花费的时间。除非你已经熟悉为SQLite做这个,否则你经常猜错了。尽可能使用代表性示例的定量测试。遗憾的是,可重复测量执行磁盘访问的应用程序的性能并非易事。 然而很难使用缓存无疑缓存很快但它不适用于大数据和数据长时间无法存储在缓存中。因此,如果您希望该用户离线使用您的应用,那么您应该以优化的方式将数据放在SQLite上。 希望这会对你有所帮助。
答案 1 :(得分:0)
根据经验,没有SQLite是在Android设备中使用的最可靠的数据库。它没有单独的服务器进程,它直接读/右单个磁盘文件。