Android:CSV 数据库与 SQLite 数据库
Android: CSV database vs SQLite database
CSV 数据库与 Android 中的 SQLite 数据库相比如何?
查看 Whosebug 上的其他问题并阅读 Android 开发人员文档,我发现 SQLite 数据库的使用频率远高于从 CSV 文件读取数据的频率。还有一些问题是用户希望将 CSV 文件导入 SQLite 数据库(例如,this question or this 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 数据库那样是 'database'。但是,我仍然可以将 CSV 文件用作一种数据库,其中逗号分隔值表示不同的列,也可以通过检查特定列是否与特定值匹配来过滤这些列。所以我想问从哪个读取数据比较好。
SQLite和CSV其实不是一回事,比较起来比较困难。 SQLite 是一个(有限的)SQL 数据库,这意味着您可以使用它来存储结构化数据和相关数据,以确保一致性(相关记录在删除时不会混乱)和简单方式。
即使对于平面数据,SQLite 也可以更轻松地查询您的数据子集(例如,其中一列少于三列的所有记录),根据您的需要重新排序数据和在中间某处插入一条记录。
另一方面,CSV 只是一个文本文件,可用于非常简单的数据。它的开销很小,但在数据完整性和易于查询方面对您帮助不大。如果您不需要这个,并且总是阅读所有内容,当然,您可以使用 CSV。
如果其中的 none 对您有所启发(相关记录和数据完整性等),我建议您继续阅读关系数据库系统。一如既往,Wikipedia is an excellent source.
CSV 数据库与 Android 中的 SQLite 数据库相比如何?
查看 Whosebug 上的其他问题并阅读 Android 开发人员文档,我发现 SQLite 数据库的使用频率远高于从 CSV 文件读取数据的频率。还有一些问题是用户希望将 CSV 文件导入 SQLite 数据库(例如,this question or this 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 数据库那样是 'database'。但是,我仍然可以将 CSV 文件用作一种数据库,其中逗号分隔值表示不同的列,也可以通过检查特定列是否与特定值匹配来过滤这些列。所以我想问从哪个读取数据比较好。
SQLite和CSV其实不是一回事,比较起来比较困难。 SQLite 是一个(有限的)SQL 数据库,这意味着您可以使用它来存储结构化数据和相关数据,以确保一致性(相关记录在删除时不会混乱)和简单方式。
即使对于平面数据,SQLite 也可以更轻松地查询您的数据子集(例如,其中一列少于三列的所有记录),根据您的需要重新排序数据和在中间某处插入一条记录。
另一方面,CSV 只是一个文本文件,可用于非常简单的数据。它的开销很小,但在数据完整性和易于查询方面对您帮助不大。如果您不需要这个,并且总是阅读所有内容,当然,您可以使用 CSV。
如果其中的 none 对您有所启发(相关记录和数据完整性等),我建议您继续阅读关系数据库系统。一如既往,Wikipedia is an excellent source.