索引varbinary列vs varchar vs int -速度很快



如果在二进制列而不是字符串列上创建索引,我们是否有任何性能优势?哪一个会快。我知道与数值相比,varchar会比较慢。由于二进制值必须被直接读取,我希望它应该是快速的,可能是快速的。

编辑:

实际用例是,如果我有GUID列,我可以使用CHECKSUM或HASHBYTES来避免字符串比较。

我知道我们不能在MAX上创建索引。它只是关于varchar(25), varbinary(25), int。varchar(max)

没有意义

这取决于列的大小,但是对于相同大小的两个列,varbinary 通常更快。这里涉及的另一个因素是用于列的排序。Sql Server中的默认排序规则不区分大小写,这意味着为了比较目的,SOME RANDOM KEY, some random key及其每个排列都是相同的值,因此数据库在比较和排序这些键时必须做额外的工作,以知道什么在哪里,什么值与其他值匹配:它不仅仅是一个直接的字节对字节比较了。

最新更新