使用多列唯一索引与单个散列列

时间:2015-12-01 20:52:29

标签: sql-server database-design database-performance

我需要为多列提供唯一约束的表格。但是,我还可以基于所有必需字段的散列来引入额外的列,而不是创建多列唯一索引。那么哪一个在数据库性能方面会更有效呢?

MySQL suggests哈希列方法但我无法找到有关SqlServer的任何信息。

1 个答案:

答案 0 :(得分:1)

您提供的链接指出:

  

如果此列很短,相当独特且已编入索引,则可能比许多列上的“宽”索引更快。

因此,性能提升确实依赖于索引哈希比组合多列小得多。考虑到MD5是16字节,这很可能不是这种情况。我会考虑多列索引的平均索引密钥会有多宽,而且说实话,我可能不会为哈希打扰。

如果您愿意,可以使用这两种方法对系统进行基准测试。如果潜在的好处不会引起你的尝试,那我再也不会打扰了。

我更经常地使用这种技术进行变更检测,其中检查表行的100个单独列中的更改比计算两个哈希更加计算密集。