连接上的外键类型

时间:2015-10-17 08:45:08

标签: sql-server sql-server-2012 inner-join jointable sqlperformance

我已经读过,当在FK上连接表时,连接所执行的列的数据类型会影响性能。例如,加入['mail']比加入int更快我的问题是,这是一个真实的语句,因为根据数据类型或该数据类型中的值加入字段更快?

例如,如果我对-2,147,483,648的值进行连接,那么比“J”的连接快,因为“J”在数据库中占用更多空间,假设“J”来自{ {1}}字段?如果它们都来自整数列,那么值1的连接是否以与-2,147,483,648相同的速度出现?

1 个答案:

答案 0 :(得分:1)

执行相等性比较(不涉及类型转换或转换)的主要因素是数据类型的大小。 SQL Server中的整数类型具有固定大小(int为4个字节,bigint为8个字节,等等。 - 有关完整详细信息,请参阅the documentation,因此实际数据是无关紧要的。另一方面,Varchar(而不是char s)的大小因数据大小而异(有关详细信息,请参阅the docs),因此数据更短可能确实会影响查询的性能,但是你必须有相当多的行来注意任何差异。