sql - CHAR(64) 或 BINARY(32) 在 SQL SERVER 中存储 SHA256 哈希

标签 sql sql-server sha256

我正在争论在 SQL Server 中存储 SHA256 哈希时应使用哪种数据类型。应该是 CHAR(64) 还是 BINARY(32) ... 该列将成为唯一聚集索引的一部分。我知道此时我可能会吹毛求疵,但是我想第一次就把这件事做好,而且我知道有时原始数据类型更快,有时更新的更奇特的类型表现更好。 (是的,我知道 char(64) 并不是那么新,但它比字节存储更新)

我环顾四周,找不到任何关于其中一个与另一个在搜索等方面的性能对比的信息。

最佳答案

你知道通过使用 CHAR(64),即使你的键是“A”,每行也将占用 64 位? 我不打算讨论您使用字符串作为聚集索引的事实,我只是假设您有充分的理由,但是使用 CHAR 而不是 VARCHAR?您打算更新该值吗?因为这是我认为使用 char 而不是 varchar 的唯一原因

关于sql - CHAR(64) 或 BINARY(32) 在 SQL SERVER 中存储 SHA256 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18668180/

相关文章:

ios - NSString 到 String 抛出 "fatal error: unexpectedly found nil while unwrapping an Optional value"

swift - Vapor 加密 : expression type 'Data' is ambiguous without more context

sql - 通过组合键从 select 中删除记录

结果集上的 SQL SUM (DISTINCT ...)

sql-server - 转换为具有指定小数位数的小数

java - 使用 Java 和 Hibernate 从存储过程获取返回值(标量),而不是结果表

asp.net - SQL Server 2017 : Feature Pack Missing File

java - Apache Derby : SQLSyntaxErrorException

MySQL 获取 : need some advice

Java SHA256 输出不同的散列到 PHP SHA256?