Sqlite vs CSV文件操作性能

时间:2016-11-19 17:34:24

标签: sqlite csv

关于操作性能,哪个更好,Sqlite或CSV文件?

提前致谢

2 个答案:

答案 0 :(得分:19)

除非你对CSV做了很多非常的事情,并且只做了一次, SQLite对于运行时,编码时间和维护时间会更快,而且会更灵活

将CSV放入SQLite的主要优点是......

  • 使用已知的查询语言进行查询。
  • 使用灵活的查询语言进行查询。
  • 利用高性能索引。
  • 不必编写和维护,记录和测试一堆自定义查询代码。

您可以查看以下费用:

的SQLite

  • 一旦...
    • 创建架构。
    • 将CSV导入SQLite(内置)。
      • 可能要求您编写一些代码来翻译值。
    • [可选,但建议]设置索引。
  • 对于每个不同的查询...
    • 在SQL中执行查询。

CSV

  • 对于每个不同的查询...
    • 为您的查询编写特殊代码。
    • 记录如何使用此特殊代码。
    • 测试您的特殊查询代码。
    • 调试您的特殊查询代码。
    • 运行您必须的特殊查询代码...
      • 阅读CSV文件。
      • 解析CSV文件。
      • (可选)索引CSV文件。
        • 提出索引方案。
      • 运行您的查询。

请注意,如果您的查询很简单,则解析和运行可以一起发生。类似于“查找字段5大于10的所有列”。

很容易忘记即使您使用库进行CSV解析,编写特殊代码以查询CSV文件也会产生编码和维护成本。 必须对每个查询 进行编码,测试和调试。 必须对每个特殊情况或选项 进行编码,测试和调试。

因为这是你编造的所有特殊内容,所以没有任何惯例可以遵循。来使用您的查询程序的人必须了解它的作用以及它的工作原理。如果他们想做任何稍微不同的事情,他们(或你)必须进入代码,理解,修改,测试,调试和记录。这将产生许多支持请求。

相比之下,SQLite要求您在SQL查询之外编写很少或不编写特殊代码。 SQL是一种常见的查询语言。你可以说“这是一个SQLite数据库”,人们很可能会知道该怎么做。或者,他们将学习SQL,这通常是适用的知识。而学习特殊CSV查询程序则是一次性知识。

如果人们想要运行查询,您并没有预料到他们可以自己编写SQL。你不需要被打扰,也不需要弄乱一大堆代码。

最后,对于索引良好的表,SQLite的查询时间将远远超过您或我可能编写的任何内容。 SQLite是由许多数据库专家合作完成的数据库。您可能不会超越他们用C语言编写的经过仔细优化的代码。即使您可以略微提高性能,don't you have better things to do

答案 1 :(得分:0)

一个明显的优点是您无法索引csv文件。如果必须使用大数据集的子集,则在sqlite表中的列上创建索引是一个优点。