在硬盘中存放的文件,记录的数据是大约10万条,每条记录对应40个字段左右,为这个文件建立了索引,并且根据索引对当前文件进行查询操作,原来考虑的是先把索引的内容读入内存,进行查询,根据查询的结果回到硬盘文件中将相关记录取出送入到内存中。现在的问题是,如果要进行的是频繁的查询操作,这样子来回读取索引所消耗的时间,也会降低查询的效率。如果把所有的硬盘数据都读入内存,肯定是要耗内存,也会降低查询的效率,各位高手们给只个招,看看用哪种方法更合适一些。因为这个问题现在还处于设计阶段,没有写程序,所以对于两种方法所用的时间我还没有办法计算,请大侠们帮忙了~如果觉得我写的两种方法还不够清楚,我可以继续补充~
解决方案 »
- 编程中的错误
- C++/C# 回调 与 委托 的问题
- c#编写一个连续循环读取BIN文件(不是BIN文件内部内容是这个格式的文件均要被读)的程序???????????????????????????????????
- 一个关于RichTextBoxColumn的问题
- asp.net有没有类似jsp的request.setAttribute方法?
- 请问如何制作IIS防盗链插的资料或是原代吗???
- 如何实现弹出框登录用户?
- C# 如何创建mysql 短连接,长连接
- 什么是运算符重载?
- VS.net 中文正式版安装过程出错,?
- 求教C#服务器端程序运行一段时间出现 kernel32.dll错误
- 一个在GOOGLE和BAIDU 里找不到答案的问题
--------------
索引建到数据库里,会快点. 数据类程序没有谁能避免操作数据库耗资源的,一样的道理
方法1是先从硬盘的文件中读取索引到内存,进行查询,如果查询到,则根据当前查询到的索引中的值所记录的地址回到硬盘文件中读取其相关的信息;
方法2是把存入在硬盘中的文件一次性的读入内存,然后根据索引进行查找,直接根据索引中值的地址在文件中读取相应的信息因为这个查询过程是需要频繁的进行查找,所以方法1可能因为索引需要不断的回到硬盘文件中来读取信息降低效率,方法2也许会因为把全部的文件都读入内存而占用太多的内存空间,
所以我不确定应该用哪一种方法好,当然如果有更好的方法则更好~谢谢各位大侠~