【发布时间】:2012-08-26 02:41:12
【问题描述】:
stackoverflow 上与此主题相关的问题很少,但我没有得到正确的答案。我对平面文件的性能有一些疑问,使用 flat files 而不是 SQLite 会更好吗?任何人都可以有性能统计数据吗?或在 android 中编码平面文件的正确方法示例。
【问题讨论】:
-
您不应该描述数据模型中的关系吗?它高度依赖于此。并且不要尝试重新编码 SQLite,它已经足够快了。
stackoverflow 上与此主题相关的问题很少,但我没有得到正确的答案。我对平面文件的性能有一些疑问,使用 flat files 而不是 SQLite 会更好吗?任何人都可以有性能统计数据吗?或在 android 中编码平面文件的正确方法示例。
【问题讨论】:
除了性能优势之外,以下是使用 SQLite 而不是平面文件的简单优势列表:
总而言之,这是数据库相对于文本文件的所有优势。
【讨论】:
这取决于您的要求。
如果您的存储数据规模庞大,那么我建议您使用 SQLite。另一方面,如果数据大小只有一行或几行,那么平面文件是最佳选择。
它们之间的区别在于,SQLite 以结构化格式存储数据,因此可以更容易地从多组记录中找到一条记录,这对于平面文件来说是非常繁琐的过程。
但是,如果您要存储 blob 类型的数据,则建议同时使用 SQLite 和文件系统两者的组合。即将图像/声音/视频数据存储为文件格式并将其路径存储在 SQLite 中。
【讨论】:
SQlite 在性能方面肯定要好得多,随着数据量的增加,这一点变得更加重要。
我一直在开发一个颤振应用程序,我需要根据输入的文本动态显示过滤后的项目列表。我最初使用一个 json 文件来存储数据,并将相关值读取并存储到一个列表中,然后在用户键入时过滤这个列表。
这对一些项目很好,所以我认为我很好,直到我使用包含超过 150,000 个项目的真实数据集进行测试。尝试过滤用户类型如此大的列表会使应用程序崩溃。我转向数据库解决方案,我的所有问题都得到了解决。即时过滤,不再崩溃
【讨论】: