我需要为多列提供唯一约束的表格。但是,我还可以基于所有必需字段的散列来引入额外的列,而不是创建多列唯一索引。那么哪一个在数据库性能方面会更有效呢?
MySQL suggests哈希列方法但我无法找到有关SqlServer的任何信息。
答案 0 :(得分:1)
您提供的链接指出:
如果此列很短,相当独特且已编入索引,则可能比许多列上的“宽”索引更快。
因此,性能提升确实依赖于索引哈希比组合多列小得多。考虑到MD5是16字节,这很可能不是这种情况。我会考虑多列索引的平均索引密钥会有多宽,而且说实话,我可能不会为哈希打扰。
如果您愿意,可以使用这两种方法对系统进行基准测试。如果潜在的好处不会引起你的尝试,那我再也不会打扰了。
我更经常地使用这种技术进行变更检测,其中检查表行的100个单独列中的更改比计算两个哈希更加计算密集。