Sqlite vs CSV文件操作性能

Moh*_*deh 4 csv sqlite

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

提前致谢

Sch*_*ern 21

除非你对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语言编写的经过精心优化的代码.即使你可以省略一点性能,你也不会有更好的事情要做吗?