我有一个数据库表(MySQL 5),它存储文件哈希和文件名。我正在索引数千个文件。我没有主键设置,因为我想索引所有文件,即使它们是重复的但在不同的位置。因此,如果我有2个文件X.bin和Y.bin,即使文件哈希是相同的,我也想将它们插入到我的表中,因为它们具有不同的文件名。
我不想插入副本的唯一时间是系统中已存在文件名和文件哈希。为此,我需要对文件哈希进行查询。这是需要很长时间的地方。我使用长度为64个字符的SHA256哈希。我在数据库中有数千条记录,当我对单个哈希进行查询时,需要5秒钟。
我的查询是:
SELECT FileName FROM fileinfo WHERE FileHash='qazwsxedcrfvtgbyhnujm'
除了使用像MD5这样长度为32个字符的不同文件哈希外,还有什么办法可以加快查询速度吗?
由于
答案 0 :(得分:1)
尝试在FileHash列上添加键索引。不是唯一的简单键索引:
ALTER TABLE fileinfo
ADD INDEX FileHash (FileHash)
在此更改之前和之后创建EXPLAIN SELECT ....