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