0

我必须将几百万个 128 位哈希值存储到数据库中,并且我正在为我的表设计而苦苦挣扎。

我应该将哈希存储在两个 BIGINT 字段中还是只使用 BINARY(16)?我的典型用例是根据哈希查找重复记录。

我可以使用(有两个大整数)

select * from hash where hash1=@hash1 and hash2=@hash2

或(使用 binary(16) 列)

select * from hash where hash=@hash

性能是否重要?

我正在使用 MS SQL Server,但我认为这在这里并不重要。但是,我正在从 C# 程序访问 MS SQL,并且首选易于读取/写入值,但不是交易破坏者。目前我有一个ulong数组。

4

1 回答 1

0

无论哪种方式,您都可能会进行全表扫描,对我来说,使用 binary 或 varbinary 似乎更有意义,并且只在一个列上有一个索引。

于 2017-06-28T22:36:44.690 回答