繁体   English   中英

在MySQL数据库中查询64字节(字符)哈希值需要花费几秒钟的时间。 怎么提高?

[英]Query 64 byte (char) hash in MySQL database takes several seconds. How to improve?

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

我唯一不想插入重复项的时间是系统中已经存在文件名和文件哈希。 为此,我需要对文件哈希进行查询。 这是需要很长时间的地方。 我正在使用长度为64个字符的SHA256哈希。 我在数据库中有成千上万的记录,当我对单个哈希进行查询时,需要5秒钟。

我的查询是:

SELECT FileName FROM fileinfo WHERE FileHash='qazwsxedcrfvtgbyhnujm'

除了使用长度为32个字符的不同文件哈希(例如MD5)之外,还有什么我可以做的以加快查询速度吗?

谢谢

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

ALTER TABLE fileinfo
ADD INDEX FileHash (FileHash)

在更改之前和之后进行EXPLAIN SELECT...。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM