大型 varchar 数据类型对索引有什么影响?

JHF*_*HFB 6 sql-server-2008 sql-server

我们的数据库中有一些表的数据类型为 varchar(8000),其中该列中最长的实际值为 75。当我们在该列上放置索引时,我们会收到预期的警告,即最大允许的索引长度为 900 字节.

实际数据类型是否会影响该索引的有效性?也就是说,既然实际数据远低于900字节,那么索引还能用吗?

就其价值而言,我正在尝试修改数据类型,因为这对于列的目的来说是一个荒谬的限制,但我不确定争论的激烈程度。

DFo*_*k42 4

首先要确定的是数据大小的要求是什么。如果它超过 900,那么您将无法创建此索引,因为插入超过 900 个字符将会失败。

这是一个例子

就索引的大小而言,不,varchar 数据类型的大小不会影响索引的大小。因为数据类型是varchar,所以只会占用实际数据的大小。但是,如果数据变化很大,您将根据索引填充因子获得碎片,因为如果添加更多字符,数据的分配将不得不增加。