将CSV放入sqlite的主要优点是……
>使用已知的查询语言进行查询.
>使用灵活的查询语言进行查询.
>利用高性能索引.
>不必编写和维护,记录和测试一堆自定义查询代码.
您可以查看以下费用:
sqlite的
>一次……
>创建架构.
>将CSV导入sqlite(内置).
>这可能需要您编写一些代码来翻译值.
> [可选,但建议]设置索引.
>对于每个不同的查询…
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?