Android性能:平面文件与SQLite

时间:2012-08-31 09:33:07

标签: android sqlite flat-file

在stackoverflow上有关于这个主题的问题很少,但我没有得到正确的答案。我对平面文件的性能有些怀疑,使用平面文件而不是 SQLite 会更好吗?有人可以有性能统计吗?或者在android中编写平面文件的正确方法的例子。

3 个答案:

答案 0 :(得分:31)

除了性能优势之外,这里有一个使用SQLite而不是平面文件的简单优势列表:

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

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

答案 1 :(得分:9)

这取决于您的要求。

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

它们之间的区别在于,SQLite以结构化格式存储数据,因此从多组记录中查找记录会更容易,这对于平面文件来说是非常繁琐的过程。

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

另请访问此accessing performance

答案 2 :(得分:0)

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

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

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