对2个或更多大量结果集进行排序?

Zen*_*nil 1 java sorting

我需要能够对多个中间结果集进行排序,并按排序顺序将它们输入到文件中.排序基于单个列/键值.每个结果集记录将是值列表(如表中的记录)

  1. 通过查询完全不同的数据库获得中间结果集.
  2. 中间结果集已根据某个键(或列)进行排序.在将其写入文件之前,需要将它们组合并在同一个键(或列)上再次排序.
  3. 由于这些结果集可能很大(MB的顺序),因此无法在内存中完成.

我的解决方案广泛:

使用哈希和随机访问文件.由于结果集已经排序,因此在检索结果集时,我将已排序的列值存储为散列映射中的键.散列映射中的值将是随机访问文件中的一个地址,其中与该列值关联的每个记录将存储.

有任何想法吗 ?

zig*_*tar 5

指向每个集合的指针,最初指向第一个条目

然后从集合中选择下一个结果,该结果提供最低的条目

将此条目写入文件并递增相应的指针

这种方法基本上没有开销,时间是O(n).(这是Merge-Sort,顺便说一句)

编辑

澄清一下:它是合并排序的合并部分.