我已经读过,当在FK上连接表时,连接所执行的列的数据类型会影响性能。例如,加入['mail']
比加入int
更快我的问题是,这是一个真实的语句,因为根据数据类型或该数据类型中的值加入字段更快?
例如,如果我对-2,147,483,648的值进行连接,那么比“J”的连接快,因为“J”在数据库中占用更多空间,假设“J”来自{ {1}}字段?如果它们都来自整数列,那么值1的连接是否以与-2,147,483,648相同的速度出现?
答案 0 :(得分:1)
执行相等性比较(不涉及类型转换或转换)的主要因素是数据类型的大小。 SQL Server中的整数类型具有固定大小(int
为4个字节,bigint
为8个字节,等等。 - 有关完整详细信息,请参阅the documentation,因此实际数据是无关紧要的。另一方面,Varchar
(而不是char
s)的大小因数据大小而异(有关详细信息,请参阅the docs),因此数据更短可能确实会影响查询的性能,但是你必须有相当多的行来注意任何差异。