【发布时间】:2015-04-06 22:50:17
【问题描述】:
我的输入文件有 700 万行。 读取文件需要很长时间。之后,我必须根据客户的要求修改数据。如果客户添加新要求,那么我必须再次读取 csv 文件。 有什么方法可以在 c# 中以某种格式读取和存储 csv 文件。所以我可以避免每次都读取 csv 文件。 我不能使用 SQL 、SQLITE 或任何其他数据库来存储数据。
【问题讨论】:
-
CSV 文件实际上是
List<List<string>>。像这样解析它们并将它们保存在内存中? -
有趣的是,您有一个在处理 700 万行数据时不使用数据库的策略。如果将所有数据存储到内存中,还取决于这些要求的频率。您可以创建一个索引文件并使用它来仅加载需要更改的数据。这是设计和技术与编码问题的边界。
-
此外,解析 700 万行 CSV 文件所花费的大部分时间将是磁盘 I/O。您是否尝试过对其进行压缩,并在需要进行更改时将其解压缩到内存中?
-
为什么不能使用SQLITE(例如)?否则听起来很合适。