Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql IN(VARCHAR)vs IN(INT)_Mysql_Int_Varchar - Fatal编程技术网

Mysql IN(VARCHAR)vs IN(INT)

Mysql IN(VARCHAR)vs IN(INT),mysql,int,varchar,Mysql,Int,Varchar,我需要在多对多关系中选择VARCHAR和INT 在('1'、'21'、'311')或(1,21311)中在Mysql中执行是否更快?由于整数的表示形式是固定长度的,默认为四个字节,并且只需一次操作即可完成比较,因此您希望尽可能使用整数。索引和比较字符串总是比较昂贵,但是字符串越长,差异就越大 在您这里的示例中,使用的数字非常小,它们的性能可能大致相同。但是,对于具有六位或七位数字的真实数字,您会看到更大的差异。一般来说,mysql在处理整数时速度更快。请注意:不要通过标识关系来使用In()。使用

我需要在多对多关系中选择
VARCHAR
INT


在('1'、'21'、'311')或(1,21311)中在Mysql中执行
是否更快?

由于整数的表示形式是固定长度的,默认为四个字节,并且只需一次操作即可完成比较,因此您希望尽可能使用整数。索引和比较字符串总是比较昂贵,但是字符串越长,差异就越大


在您这里的示例中,使用的数字非常小,它们的性能可能大致相同。但是,对于具有六位或七位数字的真实数字,您会看到更大的差异。

一般来说,mysql在处理整数时速度更快。请注意:不要通过标识关系来使用
In()。使用
EXISTS()
。在任何情况下,请使用外键id(整数)。谢谢,DanFromGermany在评论中提到的In和EXISTS之间的区别是什么?我只看到了
EXISTS
用于,而不是固定列表。