sql两表关联,两边字段类型不一致的问题。

两个表用id字段关联,主表大概4000w条数据,副表大概1.6亿条,id字段在主表为bigint类型,在副表为varchar类型,环境为db2的mpp,之前不知道存在类型不一致的情况,关联了不止十小时无果,改正类型不一致问题后,十多分钟出结果。两边的id也都是数字类型,我想知道为什么性能前后差别这么大,而且sql作为面向查询的语言,为什么需要我显式的转换数据类型?

类型不一致怎么去关联

int和varchar的存储方式不一样,检索的代价自然差别大,int做关联最快。还有,都是数字不要用varchar类型,用int,比字符类型检索快,消耗存储也少很多。