当连接表之间存在可变范围不匹配时,JOIN是否可以使用索引,例如,一个表中的id是varchar(10),另一个表中的varchar(11)是外键吗?我知道如果类型不同,它不起作用,但不确定不同范围的情况是否相同。
此外,INT类型的范围,例如INT(10)或INT(11),如果使用ZEROFILL,则不会影响格式化以外的任何内容。上述两个INT的存储容量是相同的。但是,就像在我的第一个问题中一样,当连接表之间的INT类型存在范围不匹配时,JOIN是否可以使用索引?
答案 0 :(得分:0)
是的,索引应该适用于varchar字段大小不同的地方。
在这种情况下,您不应该对外键有任何问题,因为子表中的字段具有更大的大小。如果是相反的方法,如果外键值大于子表中允许的varchar字段,则可能会出错。