可以将非唯一列定义为聚簇索引和非聚簇索引。但是,如果列未定义为唯一,SQL Server 会在聚集索引的情况下向索引列添加一个 4 字节整数。这样做是为了在内部保持记录的“唯一性”,即使两个或多个记录可能具有该列的值。为什么在非聚集索引的情况下不需要这个整数?
最佳答案
非聚集索引已经包含聚集索引列,因此它可以引用与其关联的确切行。因此,对于聚集索引上的唯一标识符,非聚集索引也将包括唯一标识符。
这里有一个很好的解释:Understanding and Examining the Uniquifier in SQL Server
关于sql-server - 为什么 SQL Server 向非唯一聚集索引添加一个 4 字节整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12321905/