免费注册 查看新帖 |

Chinaunix

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

[算法] 文件存储的--多个文件的内容存到一个大文件中来提高访问数度 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-19 12:17 |只看该作者 |倒序浏览
应为工作需要,要将很多大小不太大,但是文件个数却达到上千万,文件名也是一个没有规律,特上的字符串,有些长到系统都不支持了,想把这些文件放到一个大文件中,解决访问数度与文件名过长等问题。
希望大家提供一下设计思想。
如果有线程的软件更好。

论坛徽章:
0
2 [报告]
发表于 2009-01-19 12:19 |只看该作者
三行半的字,错别字一大堆啊。
系统都不支持的文件名,如何生成的文件啊?

论坛徽章:
0
3 [报告]
发表于 2009-01-19 12:58 |只看该作者
抱歉,中午时候发表的文章,已经困的困的不行了,处于迷茫状态。我是用网页的url做的文件名,有的url超过了1024个字节,系统文件名当然没有这么长了

论坛徽章:
0
4 [报告]
发表于 2009-01-19 13:09 |只看该作者
关键是你存放到文件之后又想干什么呢?下一步还要从里面搜索出你需要的东西吗?

论坛徽章:
0
5 [报告]
发表于 2009-01-19 13:26 |只看该作者
raisefs

论坛徽章:
0
6 [报告]
发表于 2009-01-19 13:32 |只看该作者
对,当然了,我放到大文件中,要提高他们的访问速度的呀, 应为文件很零散,目录的层次很多,打开文件的速度,已经满足不了我的需要了

论坛徽章:
0
7 [报告]
发表于 2009-01-19 13:48 |只看该作者
这个也是种方法,我们以前用过 hash 散列目录存储,但是觉的数度还不太快,所以想用大文件存储

论坛徽章:
1
天秤座
日期:2014-04-27 07:42:20
8 [报告]
发表于 2009-01-20 09:35 |只看该作者
为何不放到数据库里面去?

论坛徽章:
0
9 [报告]
发表于 2009-01-20 10:26 |只看该作者
如果文件不会被修改(即:大小不变)的话,可以直接写一个基于文件的文件系统。类似于rar或zip那种压缩包一样的。

你打开以上二者的压缩包,不是能看到很多的目录和文件么?但在外面看来却是一个文件。Quake III(雷神之槌III,如果万国这个游戏的话)就采用了类似的技术。它的pkg文件其实就是zip包,只是改个后缀。然后一次加载入内存,按照一个子文件系统来处理。

2007年的时候,公司产品中的一个存档系统就做了类似的事。当时要求是可能要查阅上千万个小文件,或在这上千万个小文件中查找,但文件大小不会变。但这样的话,如果放入数据库,高并发和速度是个很大的问题,所以直接加个索引系统然后做成1个G一个的单个文件,这样文件数目少了,磁盘访问性能也上去了。

但是,如果你的文件要求修改的话,那就没这么简单了。可以好好参考一下文件系统,或数据库的存储组织。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP