26

在stackoverflow上与这个主题相关的问题很少,但我没有得到正确的答案。我对平面文件的性能有一些疑问,使用平面文件而不是SQLite更好吗?任何人都可以有性能统计数据吗?或在 android 中编码平面文件的正确方法示例。

4

3 回答 3

31

除了性能优势之外,以下是使用 SQLite 而不是平面文件的优势的简单列表:

  • 您可以根据需要查询项目 - 不需要加载所有项目并选择您需要的项目。
  • 删除记录是一个不那么痛苦的过程。无需将整个文件重写到任何地方。
  • 更新记录与删除或创建记录一样简单。
  • 您是否尝试过对平面文件进行交叉引用查找?不值得。

总而言之,这是数据库相对于文本文件的所有优势。

于 2012-08-31T11:19:14.547 回答
11

这取决于您的要求。

如果您的存储数据规模庞大,那么我建议您使用 SQLite。另一方面,如果数据大小只有一行或几行,那么平面文件是最佳选择。

它们之间的区别在于,SQLite 以结构化格式存储数据,因此可以更容易地从多组记录中找到一条记录,这在平面文件的情况下是非常繁琐的过程。

但是,如果您要存储 blob 类型的数据,则建议同时使用 SQLite 和文件系统两者的组合。即将图像/声音/视频数据存储为文件格式,并将它们的路径存储在 SQLite 中。

也访问这个访问性能

于 2012-08-31T09:36:32.077 回答
0

SQlite 在性能方面肯定要好得多,随着数据大小的增加,这一点变得更加重要。

我一直在开发一个颤振应用程序,我需要根据输入的文本动态显示过滤的项目列表。我最初使用一个 json 文件来存储数据,并将相关值读取并存储到一个列表中,然后在用户键入时过滤这个列表。

这适用于一些项目,所以我认为我很好,直到我使用包含超过 150,000 个项目的真实数据集进行测试。尝试过滤用户类型如此大的列表会使应用程序崩溃。我转向数据库解决方案,我的所有问题都得到了解决。即时过滤,不再崩溃

于 2021-05-14T07:33:50.690 回答