当前位置:  技术问答>linux和unix

来一个高难的问题:怎样能保证文件的物理连续存储?或者说如何能最大限度提高文件I/O的效率?

    来源: 互联网  发布时间:2015-11-22

    本文导语:  我现在要处理一个包含上千万条记录的文件,每条记录都是二进制固定长度写入文件的。由于每天都会生成这样一个文件,因此对文件的检索效率就非常重要。我现在想文件在写入时保证文件在硬盘中是连续存储的,...

我现在要处理一个包含上千万条记录的文件,每条记录都是二进制固定长度写入文件的。由于每天都会生成这样一个文件,因此对文件的检索效率就非常重要。我现在想文件在写入时保证文件在硬盘中是连续存储的,这应该能提高效率吧。可是查了一下,发现微软的系统都提供C语言的此类函数支持,可是Linux好像找不到。
Linux中能够实现对磁盘的绝对读写吗?
如果您有什么好的建议能够提高文件检索的效率,请不吝赐教,不胜感激!

|
如楼上所说,改进算法很重要。比如你可以在每个文件头建立索引表,或者专门创建一个文件存放索引表。或者干脆用数据库来保存你的数据。
索引的时候也可以用一些技巧,不太清楚你的具体数据结构,举个例子,你可以所有相同字母的数据存到同一文件。

也可以使用裸设备(row device),比如oracel就可以使用此类设备。

所谓裸设备,是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。 你需要一个未经格式化的分区作为裸设备。

不过使用裸设备不一定比文件快,因为文件系统本身也有很好的缓冲。除非有非常频繁的磁盘I/O,而不是大量的顺序文件读写。另一方面,使用裸设备也需要自己实现类似文件系统的功能,所以会比较复杂。

另外,不知道你说的windows下的相关调用是什么呢?



|
根据需要设计文件系统,比如swap分区就是独特的。freebsd的/var分区,oracle、clearcase等等这样及其依赖存储的应用都是自己管理文件系统。

|
还不如提高你的算法效率,另外建立一张索引表,可以提高查找速率

|
"我现在想文件在写入时保证文件在硬盘中是连续存储的",不懂,你的文件每天都在生成,你是说让你每天生成的文件都让其连续存储吗?
“发现微软的系统都提供C语言的此类函数支持”,这个又是指什么呢?
我觉得这主要取决文件系统吧。文件系统如何定义,怎样来分配存储。

|
做裸设备应该是最高性能的选择了。

    
 
 

您可能感兴趣的文章:

  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 菜问题:请问如何根据文件中的一段内容查找文件路径和文件名称,在线等候
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • shell脚本剪切文件文件,并生成新文件的问题
  • 文件编码及UTF-8、BOM、0XFEFF相关问题
  • GUI问题:如何使用文件选择对话框保存文本文件,图像文件??
  • Java读写包括中文的txt文件时不同编码格式问题解决
  • 不解,上传文件后压缩文件的中文文件名问题,转码也不管用?
  • cocos2d中CCSpriteFrameCache文件同时存在两个plist的问题解决
  • ext3文件系统问题:文件在硬盘上的物理位置,一组文件要据此排序。
  • jsp文件访问jar文件,路径问题。
  • Linux www服务 文件夹内文件数量问题
  • 一个奇怪的问题:Red Hat 7.2下用mv复制-粘贴文件变成了剪切-粘贴文件,用mv -b也不行。而两周前同样的机器却没有出现这种问题。alias中m
  • 请问unix下修改文件和文件夹读写权限的问题
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • 关于在只读文件系统中,更新文件的问题
  • 高手请进:linux下使用.o文件,makefile文件的问题
  • 2个问题 急-共享文件夹和安装文件
  • 简单的问题,如何用命令 批量 删除某一目录下的 .o 文件?如何批量把只读文件改成可写文件?
  • 小问题, Unix 如何建立一个文件 ,unix 文件有后缀名吗
  • 文件夹或者文件权限问题?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问RPC的效率问题。
  • 关于加密算法的效率问题
  • FIFO和Socket通信的并发效率问题
  • 一个效率问题
  • cdt效率问题?
  • JavaMail效率问题
  • 关于AF_LOCAL的效率问题
  • Linux里计算器的一个问题 关于效率的!
  • Window和Linux下效率的问题,急!
  • 关于java效率的问题.
  • 关于TCP效率问题
  • 引用与指针的效率问题
  • 求助:用虚拟机运行linux/unix效率问题
  • 小问题一个:vmware和真正机器的效率比
  • 关于POSIX message queue的效率问题?
  • JDBC效率问题,才2,3张表连接查询就慢得受不了?高分求解......
  • 请教进程fork()相关的,执行效率的问题,看我这段程序.
  • 关于Bean的生命周期与效率的问题
  • ###用JAVA做聊天室的一个效率问题,请帮忙!###
  • 对于这样的问题该如何提高其效率?
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 简单问题简单问题简单问题简单问题
  • 八个问题帮你快速了解Docker
  • 小问题,急问题,重大问题!!!
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • nginx Windows版相关问题及使用说明
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3