存储128位散列:两个bigints还是二进制(16)?

时间:2017-06-28 20:20:57

标签: sql sql-server hash 128-bit

我必须将数百万个128位哈希值存储到数据库中,我正在努力完成我的表设计。

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

我可以使用(有两个bigint)

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

或(二进制(16)列)

select * from hash where hash=@hash

明智的表现是否重要?

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

1 个答案:

答案 0 :(得分:0)

你可能会以任何一种方式进行全表扫描,对我来说,使用二进制或varbinary似乎更有意义,并且只有一列的索引。