Android:CSV 数据库与 SQLite 数据库

标签 android csv android-sqlite android-database

CSV 数据库与 Android 中的 SQLite 数据库相比如何?

查看 StackOverflow 上的其他问题并阅读 Android 开发人员文档,我发现 SQLite 数据库的使用频率远高于从 CSV 文件读取数据的频率。还有一些问题是用户希望将 CSV 文件导入 SQLite 数据库(例如 this questionthis one )。使用 SQLite 比使用 CSV 有优势吗?

我尝试过同时使用 CSV 和 SQLite,在性能方面我没有看到太大的差异,但如果我在这里错了请纠正我。
据我所知,有多种读取 CSV 文件的方法,我使用 BufferedReader 打开并读取它,如下所示:

BufferedReader reader = 
        new BufferedReader(new InputStreamReader(context.getAssets().open(fileName)));

然后 SQLite 数据库以通常的方式打开:

SQLiteDatabase db = helper.getReadableDatabase();

虽然我假设 SQLite 更易于管理和过滤,但我不太确定功能上的差异,这就是我问这个问题的原因。

总结一下:

  • 两者在性能方面是否更快?
  • SQLite(或 CSV)是否有任何其他功能没有的附加功能,尤其是在 Android 中(据我所知,Android 有自己的 SQLiteDatabase class
  • 为什么 SQLite 的使用似乎远远超过 CSV 数据库(即读取和过滤 CSV 文件)?

编辑:

澄清一下,我知道 CSV 文件只是一个用逗号分隔值的文件,即不像 SQL 数据库那样是“数据库”。但是,我仍然可以将 CSV 文件用作一种数据库,其中逗号分隔值表示不同的列,也可以通过检查特定列是否与特定值匹配来过滤这些列。所以我想问从哪个读取数据更好。

最佳答案

SQLite 和 CSV 并不是一回事,这使得比较变得相当困难。 SQLite 是一个(有限的)SQL 数据库,这意味着您可以使用它来存储结构化数据和相关数据,以确保一致性(相关记录在删除时不会弄乱)和简单的方式。

即使对于平面数据,SQLite 也可以更轻松地查询您的数据子集(例如,其中一列少于三列的所有记录),根据您的需要重新排序数据并在中间某处插入一条记录.

另一方面,CSV 只是一个文本文件,可用于非常简单的数据。它的开销很小,但在数据完整性和易于查询方面对您帮助不大。如果您不需要这个,并且总是阅读所有内容,当然,您可以使用 CSV。

如果这些都没有引起您的注意(相关记录和数据完整性等),我建议您阅读关系数据库系统。一如既往,Wikipedia is an excellent source .

关于Android:CSV 数据库与 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32552573/

相关文章:

android - 在Android Studio 3.4中更新到Gradle 5.1.1后无法同步

android - 确定 Android OpenGLES 中的最大/最小纹理大小限制

java - 从 EditText 获取文本字符串?

excel - 从 Excel 将工作表另存为 CSV

powershell - Import-Csv - 成员已存在问题

java - 如何使用架构组件观察数据库删除事件

android - Android Sqlite/ORMLite 中的十六进制字符串与大整型索引

android - 在 phonegap 中从 Android 上的图库中选择时无法加载图像

android - CREATE TABLE 中的 FOREIGN KEY 语法错误

Windows批处理文件将空白字段更改为值