大量CSV数据读取,如何保证效率

wxylvmnn 2010-02-23 03:54:05
现在读取CSV,客户说最大会出现100万条数据的情况,大小有500M,,,,

结果读取的时候,还没等到对数据进行望数据库内插入时,有的机器出现了内存溢出。

读取的时候的代码如下:
csvFormatString = FileIO.FileSystem.ReadAllText(fileName, Encoding.GetEncoding("SHIFT-JIS"))

作为对应案,
现在只能考虑是循环读取了,
1万件为单位,循环100次来处理这样100万件数据的CSV。
不知道哪位同学 有什么高招能解决这样的问题。

...全文
1255 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-02-24
  • 打赏
  • 举报
回复
引用 5 楼 zhoufoxcn 的回复:
引用 3 楼 wuyazhe 的回复:zgke说的没错,但是,如果有非字符的,转换效率很差的,这样的东西最好用c/c++做,里面的fscanf还是效率比c#快太多了。不是一个数量级的。
汇编还会更快,你为什么不建议使用汇编呢?

一次全部读取太耗内存,一次一行也不可取,可以在二者之间寻求一个平衡,还有在使用StringBuilder等来提高缓冲能力,还有优化算法等,可以从某些程度上提高性能,但是数据量大,不管如何优化总是需要花费一些时间的。



你这话说的,你肯定没实际项目中因为这个,困住过。
这的确是.net的美中不足,汇编,那你怎么不说01算了,你这不抬杠么。
因为如果明文保存的数据含有浮点数,读取速度差的惊人,当时一行一行读速度还是不满足,考虑了c++的scanf的,但最终还是我的项目用了2进制直接存取来提高速度。


楼主考虑的就是效率,我给说个效率方面的提升方法也招惹到你MVP大人了!
luhang112 2010-02-23
  • 打赏
  • 举报
回复
dddddddddddddddddddddddddddddddddddddd
周公 2010-02-23
  • 打赏
  • 举报
回复
引用 3 楼 wuyazhe 的回复:
zgke说的没错,但是,如果有非字符的,转换效率很差的,这样的东西最好用c/c++做,里面的fscanf还是效率比c#快太多了。不是一个数量级的。

汇编还会更快,你为什么不建议使用汇编呢?

一次全部读取太耗内存,一次一行也不可取,可以在二者之间寻求一个平衡,还有在使用StringBuilder等来提高缓冲能力,还有优化算法等,可以从某些程度上提高性能,但是数据量大,不管如何优化总是需要花费一些时间的。
wxylvmnn 2010-02-23
  • 打赏
  • 举报
回复
行,先结贴,谢谢各位热心回帖,这边试下readLine
兔子-顾问 2010-02-23
  • 打赏
  • 举报
回复
zgke说的没错,但是,如果有非字符的,转换效率很差的,这样的东西最好用c/c++做,里面的fscanf还是效率比c#快太多了。不是一个数量级的。
zgke 2010-02-23
  • 打赏
  • 举报
回复
如果数据很打 不建议使用 ReadAllText 使用System.IO.StreamReader().ReadLine(); 进行一行一行的读
品铭工作室 2010-02-23
  • 打赏
  • 举报
回复
基本上都是这样处理的了,问题在于是在一个PC处理,还是多台PC(分布式处理机制)
【为什么学习数据挖掘】       人工智能、大数据时代有什么技能是可以运用在各种行业的?数据分析就是。      从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。【超实用的课程内容】      本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。本课程分为三大部分:基础知识篇:主要讲解数据挖掘这项技能的基本工作流程和介绍和入门必须的基本技能Python语言的入门,带领大家了解数据挖掘的常见操作和基础知识。数据采集篇:学习如何解决数据挖掘的数据来源问题,读取各类型不同的数据包括CSV,excel,MySQL进行数据采集的交互。数据探索篇:本篇主要解决数据的预处理保证数据的质量并用常见数据挖掘算法进行特征提取,分析数据背后隐含的信息。【报名须知】课程采取录播模式,课程永久有效,可无限次观看课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化【如何开始学习?】PC端:报名成功后可以直接进入课程学习移动端:下载CSDN学院或CSDN

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧