免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 4735 | 回复: 21
打印 上一主题 下一主题

读遍一个大文件有什么好的方法吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-04 16:40 |只看该作者 |倒序浏览
一个数据量很大的文件(千万左右)如果正常的从头读到尾,大概需要几十分钟,如果对一些特殊的记录还要做特殊处理的话,时间就会更长,有什么好的方法能快速的读遍整个文件吗?

试过在f表加block关键字,但是效果不明显,而且中间特殊记录的处理仍然会耗费很多时间

还想过建个数据区,把当前读到的rrn写到数据区里,然后同时运行多个程序,每个程序从数据区里面取rrn,根据rrn读取数据,但是这就又增加了读取数据区的时间和等待数据区解锁的时间,虽然同时运行足够多的程序会提高一定的时间,但是占用资源较大

还有什么好的方法吗?

论坛徽章:
0
2 [报告]
发表于 2006-01-04 16:44 |只看该作者
原帖由 Eagle_wolf 于 2006-1-4 16:40 发表
一个数据量很大的文件(千万左右)如果正常的从头读到尾,大概需要几十分钟,如果对一些特殊的记录还要做特殊处理的话,时间就会更长,有什么好的方法能快速的读遍整个文件吗?

试过在f表加block关键字,但是效果不明显 ...


请问你读遍整个文件的目的是什么?如果仅仅是取得记录数那么不需要这样读的,如果要做处理那我想只能从头到尾读了。

论坛徽章:
0
3 [报告]
发表于 2006-01-04 16:47 |只看该作者
需要对符合某些条件的数据作特殊处理,只能遍历整个文件了

论坛徽章:
0
4 [报告]
发表于 2006-01-04 16:47 |只看该作者
请问: 需要处理的数据占整个数据量是多少?
        如果只是少数数据需要处理,那就建立一个index....如果需要处理全部数据,那看来也没有办法了....因为你已经用了block

论坛徽章:
0
5 [报告]
发表于 2006-01-04 16:52 |只看该作者
原帖由 sean810 于 2006-1-4 16:47 发表
请问: 需要处理的数据占整个数据量是多少?
        如果只是少数数据需要处理,那就建立一个index....如果需要处理全部数据,那看来也没有办法了....因为你已经用了block

索引是没法子了 条件太复杂

论坛徽章:
0
6 [报告]
发表于 2006-01-04 16:58 |只看该作者
啊? 我没有遇到过这样的问题...因为index能提高60%以上的性能...
因为你不用index,程序处理过程,也就不会高效了...
说来看看你的条件又多复杂?

论坛徽章:
0
7 [报告]
发表于 2006-01-04 17:08 |只看该作者
和另一个文件有关了,要求他在另一个文件某个时间范围内出现的次数不能大于一个数 例如5

论坛徽章:
0
8 [报告]
发表于 2006-01-04 17:48 |只看该作者
你试试看把文件名,时间设置为index. 请设置2个index,分别是文件名,时间; 时间,文件名

论坛徽章:
0
9 [报告]
发表于 2006-01-04 18:07 |只看该作者
还有其他的条件,加索引是基本上不行了 感谢楼上!

论坛徽章:
0
10 [报告]
发表于 2006-01-04 19:02 |只看该作者

!!!!

opqryf
能不能达到你的要求??
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP