大文件 b树 存储-大文件操作利用B树实现的具体原理

问题描述

大文件操作利用B树实现的具体原理
我们做一个图书馆管理系统,要求是书的信息存储在一个文件中,这个文件需要满足
2G的大小,也就是说一个文件中可以同时放下几百万本书籍的信息,通过网上查资料,
很多是说用B树来实现,可是我想不明白的是建立B树的索引时索引的指针指向的记录
地址怎么确定,也就是说在一个文件里我要查找一本书的信息,需要分批读进内存来进行
查找,如果使用了B树,怎么实现查找呢,它是直接可以根据索引找到该书在文件中的
位置吗?

解决方案

在设计应用软件的时候直接设计数据存储的物理结构,这种做法在上个世纪70年代后就过时了。lz难道是穿越来的?

解决方案二:
直接放文件地址这样根据索引找到文件地址,然后读取文件对应偏移fread获取文件内容

时间: 2024-08-01 09:17:31

大文件 b树 存储-大文件操作利用B树实现的具体原理的相关文章

大数据据量 存储-做百度云时大文件采取什么存储方式?原理是什么?

问题描述 做百度云时大文件采取什么存储方式?原理是什么? 要模拟百度云,但是不知道它的大文件该怎么存储,其原理是什么?具体怎样实现? 解决方案 hdfs,http://baike.baidu.com/link?url=z8UT8EDZakfGdR3BlnhEyb0tQDMS4qBWF3IrQT8oYm5kZy-pXiCfbTCya7SdTdQ4y-cPa8Jj5pVFuU-OjCy2pK 解决方案二: 分块存储在不同服务器,然后有管理服务器知道每个文件块在哪个服务器上.这样来读写

大神帮帮忙-递归一个文件夹下的所有文件以及文件夹,造成内存溢出问题

问题描述 递归一个文件夹下的所有文件以及文件夹,造成内存溢出问题 我需要递归一个文件夹下所有的文件并进行操纵,文件夹下也有文件夹,我用一个list存储递归得到的所有文件可能会造成溢出.我需要当此list为10000时候执行,然后清空list,请问如何实现.代码如下: static void getFiles(String filePath){ File root = new File(filePath); File[] files = root.listFiles(); for(File fil

AIX 日志清理 监听日志清理--过大的Oracle监听日志文件处理

AIX 日志清理 监听日志清理--过大的Oracle监听日志文件处理 Oracle监听器日志文件(通常叫做listener.log)是一个纯文本文件,它的大小是一直不断增长的,在一个生产Oracle服务器上,DBA会每日查看该文件,如检查监听器是否有异常停止,是否有恶意攻击连接等,当这个文件特别大的时候,打开和浏览文件内容时可能比较慢.这时可能会想到将当前的日志文件备份一下,然后重新创建一个新的日志文件,但Oracle的监听器在运行时是不允许对其日志文件做删除,重命名操作,于是只有停止监听器.重

小弟近期在学习spark编程,请问各位大神spark可以处理视频文件吗?

问题描述 小弟近期在学习spark编程,请问各位大神spark可以处理视频文件吗? spark创建RDD的形式可以是 val text = sc.textFile("hdfs://......") 或者是 val text = sc.parallelize(List(1,2,3,4,5,6,7,8,9,10), 3) 但这些都是对文本文件或者数组的操作,它能否对视频文件进行操作 比如 games.mp4 请各位大神不吝赐教

方法-将java项目打成exe或者cmd文件问题,求大神,急,感激不尽

问题描述 将java项目打成exe或者cmd文件问题,求大神,急,感激不尽 可以将一个java 项目打成一个exe或者cmd文件吗?可以让用户双击运行 之后调用我的某类的main方法 解决方案 最方便的工具用exe4j百度有.你的java得有main方法 解决方案二: 教你打包Java程序,jar转exe随处可跑

大文件管理:哪些系统盘大文件可以迁移或删除?

对于我们金山卫士清理模块新增的大文件管理功能,不知道大家是否体验过了呢? 我们知道,如果电脑的系统盘(一般为C盘)空间不足时,我们的电脑会变得运行缓慢,同时还会有某些软件会因为系统盘空间不足而无法安装等等一系列问题. 这个时候应该怎么办呢?重装系统,文件备份.重装软件都不是三五分钟就能搞定的;于是,金山卫士大文件管理功能也就闪亮登场了!下面我就来个抛砖引玉,和大家一起探讨一下哪些大文件是我们能够移动和删除的. 一看文件名 如图所示,从扫描结果的文件名Chrome.7z中已经能大致看出这几个大块头

qt-Qt 中添加资源文件到qrc中,文件过多过大时该怎么办?

问题描述 Qt 中添加资源文件到qrc中,文件过多过大时该怎么办? 这些文件不想暴露在程序目录中,有没有设么方法让这些资源全部编译进exe中?或者当文件过多过大时仍可以继续添加进qrc?还有qrc添加的资源文件的上限是怎么样的? 解决方案 貌似可以在工程PRO文件中,添加: CONFIG += resources_big 解决方案二: qt中添加资源文件qt资源文件Qt中的qrc文件 解决方案三: 有没有大神过来解答下啊!!!! 解决方案四: 你可以把资源文件先加密,然后程序中解密到内存中,然后

javaweb项目,tomcat启动异常报错,spring文件初始化问题,大神help

问题描述 javaweb项目,tomcat启动异常报错,spring文件初始化问题,大神help 本地启动没问题,把编译好的项目放到别的机器就不行,tomcat版本是一样的,都是8.0.12,jdk也是一样的,本地的系统是windows,另外一台是linux ERROR 2015-08-13 14:50:01,873 ContextLoader:initWebApplicationContext - Context initialization failed java.lang.NullPoin

ffmpeg压缩视频文件CPU占用率大

问题描述 ffmpeg压缩视频文件CPU占用率大 ffmpeg压缩视频流(windows下)总是使得CPU达到90%以上,请问有什么别的方法来压缩? 解决方案 压缩视频本身就是非常耗费cpu的工作,你可以改小输出的图像质量减少运算量,或者增加计算机上的cpu的性能,比如使用更强的,有更多内核数的cpu. 对于服务器,可以将压缩任务用队列存起来,放在低峰时段压缩. 解决方案二: 如果是大型网站的话,后台调用ffmpeg压缩视频是不可取的,本人亲自尝试过.一个请求调用ffmpeg,后面的请求就要排队