将 HASHBYTES 输出存储在 NVARCHAR 与 BYTES 中

Storing HASHBYTES output in NVARCHAR vs BYTES

我要创建:

我想使用文本的哈希值并在其上创建索引来优化文本值的搜索。因此,在搜索过程中,我希望使用非聚集索引(而不是聚集索引)。

我决定将 HASHBYTESSHA2_256 一起使用,我想知道如果我将哈希值存储为 BINARY(32) 或 [=12 是否有任何 differences/benefits =]?

您不能合理地将哈希值存储为字符,因为二进制数据不是文本。各种文本处理和比较函数解释这些字符。例如,尾随空格有时会被忽略,从而导致不正确的结果。

因为你有 32 个完全随机的非结构化字节来存储 binary(32) 是最自然的格式,也是最快的格式。