2

我正在编写一个简单的工具来检查重复文件(即具有相同数据的文件)。我使用 sha-512 算法为每个文件生成哈希值。我正在使用 MYSQL 数据库来存储哈希值。

我的问题是 - 我应该使用什么数据类型、大小和排序规则将 sha_512 哈希存储在我的数据库中?文件哈希 (sha-512) 将成为表的主键。我应该使用二进制数据类型(如 BLOB、VARBINARY(64) 和 BINARY)还是 VARCHAR(128)?

为了获得最佳性能,还需要注意哪些其他事项?

4

1 回答 1

3

您需要使用BINARY(64),因为哈希的长度正好是 64 字节,因此您不想使用可变长度类型。您也不想使用任何字符数据类型,因为哈希本质上是二进制的。没有字符,您就没有任何排序规则。

固定长度和不存在字符编码和排序规则允许进行某些优化。如果它仍然太慢,请尝试一些通用的 MySQL 优化,或者如果这也没有帮助,请尝试更小的主键大小。

于 2013-05-09T09:56:06.267 回答