基于文件的哈希数据结构

本文关键字:哈希 数据结构 文件 于文件 | 更新日期: 2023-09-27 18:33:31

我需要将每条记录(大约 1m 条记录)的"键"与数据库中的 70m+ 条记录进行比较。

我真的不想一次又一次地打数据库进行比较。

当我尝试将所有键(只是键)从数据库加载到内存(hashTable)时,我在程序的其他部分随机出现内存不足异常(正如我预期的那样)。

是否有任何基于文件的哈希表实现而不是内存中的实现?

基于文件的哈希数据结构

在数据库中创建一个临时表,并将所有 1m 个密钥写入其中。然后,使用查询将临时表中的键与目标表中的键进行比较 - 这将相对较快,因为 SQL 引擎非常擅长连接。由于您只需要 1m 个键的结果,因此查询将返回 1m 行(而不是 70m),您也可以流式传输该结果(因为它已经包含匹配项)。