在MySQL数据库中查询64字节(char)哈希需要几秒钟。如何改进?

在MySQL数据库中查询64字节(char)哈希需要几秒钟。如何改进?,mysql,sql,hash,Mysql,Sql,Hash,我有一个数据库表(MySQL 5),它存储文件哈希和文件名。我正在为成千上万的文件编制索引。我没有主键集,因为我想索引所有文件,即使它们是重复的但位于不同的位置。因此,如果我有两个文件X.bin和Y.bin,即使文件哈希相同,我也希望将它们都插入到我的表中,因为它们有不同的文件名 我唯一不想插入副本的时候是当系统中已经存在文件名和文件哈希时。为此,我需要对文件哈希进行查询。这需要很长时间。我使用的是长度为64个字符的SHA256哈希。我在数据库中有数千条记录,当我对一个散列进行查询时,需要5秒钟

我有一个数据库表(MySQL 5),它存储文件哈希和文件名。我正在为成千上万的文件编制索引。我没有主键集,因为我想索引所有文件,即使它们是重复的但位于不同的位置。因此,如果我有两个文件X.bin和Y.bin,即使文件哈希相同,我也希望将它们都插入到我的表中,因为它们有不同的文件名

我唯一不想插入副本的时候是当系统中已经存在文件名和文件哈希时。为此,我需要对文件哈希进行查询。这需要很长时间。我使用的是长度为64个字符的SHA256哈希。我在数据库中有数千条记录,当我对一个散列进行查询时,需要5秒钟

我的问题是:

SELECT FileName FROM fileinfo WHERE FileHash='qazwsxedcrfvtgbyhnujm'
除了使用不同的文件哈希(如长度为32个字符的MD5)之外,我还能做些什么来加快查询速度


谢谢

尝试在FileHash列上添加键索引。不是唯一的简单键索引:

ALTER TABLE fileinfo
ADD INDEX FileHash (FileHash)
使解释选择。。。在这圣坛之前和之后