在硬盘中存放的文件,记录的数据是大约10万条,每条记录对应40个字段左右,为这个文件建立了索引,并且根据索引对当前文件进行查询操作,原来考虑的是先把索引的内容读入内存,进行查询,根据查询的结果回到硬盘文件中将相关记录取出送入到内存中。现在的问题是,如果要进行的是频繁的查询操作,这样子来回读取索引所消耗的时间,也会降低查询的效率。如果把所有的硬盘数据都读入内存,肯定是要耗内存,也会降低查询的效率,各位高手们给只个招,看看用哪种方法更合适一些。因为这个问题现在还处于设计阶段,没有写程序,所以对于两种方法所用的时间我还没有办法计算,请大侠们帮忙了~如果觉得我写的两种方法还不够清楚,我可以继续补充~

解决方案 »

  1.   

    一定是要查索引的啦.  这中设计本来就是费资源的
    --------------
    索引建到数据库里,会快点.  数据类程序没有谁能避免操作数据库耗资源的,一样的道理
      

  2.   

    应该把索引缓存起来,然后通过索引读取硬盘文件中的数据。
      

  3.   

    谢谢楼上两位的回答,索引我是肯定要用的,而且在查找的过程中也都是使用的索引,上面我所提到的两种方法
    方法1是先从硬盘的文件中读取索引到内存,进行查询,如果查询到,则根据当前查询到的索引中的值所记录的地址回到硬盘文件中读取其相关的信息;
    方法2是把存入在硬盘中的文件一次性的读入内存,然后根据索引进行查找,直接根据索引中值的地址在文件中读取相应的信息因为这个查询过程是需要频繁的进行查找,所以方法1可能因为索引需要不断的回到硬盘文件中来读取信息降低效率,方法2也许会因为把全部的文件都读入内存而占用太多的内存空间,
    所以我不确定应该用哪一种方法好,当然如果有更好的方法则更好~谢谢各位大侠~
      

  4.   

    一切用索引了,索引一直存在于内存中,写个服务处理查询条件返回结果
      

  5.   

    虽然没有得到我想得到的答案,还是谢谢各位的解答,结贴了~