1

我要创建:

  • 用于存储 ID 和唯一文本值的表(预计会很大)
  • 一个以文本值作为输入参数的存储过程(它将检查该值是否存在于上表中,如果存在则返回相应的 ID,如果不存在则插入新记录并返回新 ID)

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

我决定与HASHBYTES一起使用SHA2_256,我想知道如果我将哈希值存储为BINARY(32)或是否有任何差异/好处NVARCHAR(16)

4

1 回答 1

3

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

由于您有 32 个完全随机的非结构化字节来存储 abinary(32)是最自然的格式,也是最快的格式。

于 2015-03-30T09:03:50.870 回答