【发布时间】:2013-12-19 15:38:47
【问题描述】:
我有这个包含一些 md5 哈希值的文本文件,其中有 1 亿行。我有另一个包含几千个 md5 哈希的较小文件。我想从这个新的小文件到旧的大文件中找到这些 md5 哈希的对应索引。
最有效的方法是什么? 15分钟左右能搞定吗?
我尝试了很多东西,但它们都不起作用。首先,我尝试将较大的数据导入数据库文件并在 md5 哈希列上创建索引。创建这个哈希需要永远。我什至不确定这是否会大大提高查询速度。有什么建议吗?
【问题讨论】:
-
@user2864740 CREATE INDEX my_index ON table (sequence_hash) using HASH;??这需要很长时间
-
没关系,它会的(哈希没有排序的事实也很痛苦;首先对输入文件进行排序可能会有所帮助!)。但是对它的查询会很快。
-
@user2864740。做一次查询需要多长时间。如果它需要一秒钟,那么它仍然是几个小时。我创建的索引是正确的吗?或者我必须做其他事情。我刚从某个地方得到那个例子,不确定它是否合适。 sequence_hash 是包含 md5 哈希的那个
-
我的查询将只是从其中 sequence_hash='some_hash' 的表中选择 id
-
您尝试使用哪种数据库?从您的用例来看,键值数据库应该适合您。或者,如果您需要经常这样做并且文件经常更改,您可以尝试一些轻量级的 mapreduce 框架来执行此操作。