首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析巨大的CSV并加载到MySQL DB中

解析巨大的CSV并加载到MySQL DB中
EN

Stack Overflow用户
提问于 2015-05-08 00:26:10
回答 1查看 219关注 0票数 1

我有一个用C#编写的程序,它读取CSV,解析数据,在将新的条件数据放入MySQL数据库(在类“anTix”中处理)之前对数据进行一些转换。代码如下:

代码语言:javascript
复制
        int                    counter = 0;
        string                 lineStr;
        string[]               splitStr;
        anTix                  active = new anTick();
        System.IO.StreamReader file;

        file = new System.IO.StreamReader(ofd.FileName);
        while ( ( lineStr = file.ReadLine() ) != null )
        {
            counter++;
            splitStr = lineStr.Split( ',' );
            active.procData( splitStr[0], 
                             splitStr[1] + splitStr[2],
                             Convert.ToSingle( splitStr[3] ), 
                             Convert.ToInt16( splitStr[4] ), 
                             Convert.ToChar( splitStr[5] ) );
        }
        file.Close();

这并不奇怪,但它完成了任务,即使我以前认为是大文件(1.5GB是我处理过的最大文件)。我现在已经升级到更大的数据文件大小(25-50GB),而且我没有足够的内存来处理那么大的文件。

在浏览了一下之后,我研究了内存映射的文件,但是我对进程的效率有一些担忧(我只在处理文件中的并发进程时使用了内存映射文件,而不是作为内存分配的解决方案),并且我不想为我典型的100-200 my文件减慢进程。

有没有更容易处理这个问题的建议?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-08 00:32:30

你不能把文件分割成一组较小的文件,然后在每一个较小的文件上运行你的程序吗?还是有什么东西要求你立即阅读整个程序?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30113836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档