从硬盘文件中读取数据进行数据查询的效率问题
在硬盘中存放的文件,记录的数据是大约10万条,每条记录对应55个字段左右,为这个文件建立了索引,并且根据索引对当前文件进行查询操作,原来考虑的是先把索引的内容读入内存,进行查询,根据查询的结果回到硬盘文件中将相关记录取出送入到内存中。现在的问题是,如果要进行的是频繁的查询操作,这样子来回读取索引所消耗的时间,也会降低查询的效率。如果把所有的硬盘数据都读入内存,肯定是要耗内存,也会降低查询的效率,各位高手们给只个招,看看用哪种方法更合适一些。
怕我的问题没有叙述清楚,再分类来说一下,索引我是肯定要用的,而且在查找的过程中也都是使用的索引,上面我所提到的两种方法
方法1是先从硬盘的文件中读取索引到内存,进行查询,如果查询到,则根据当前查询到的索引中的值所记录的地址回到硬盘文件中读取其相关的信息;
方法2是把存入在硬盘中的文件一次性的读入内存,然后根据索引进行查找,直接根据索引中值的地址在文件中读取相应的信息
因为这个查询过程是需要频繁的进行查找,所以方法1可能因为索引需要不断的回到硬盘文件中来读取信息降低效率,方法2也许会因为把全部的文件都读入内存而占用太多的内存空间,
所以我不确定应该用哪一种方法好,当然如果有更好的方法则更好~
因为这个问题现在还处于设计阶段,没有写程序,所以对于两种方法所用的时间我还没有办法计算,请大侠们帮忙了~