MySQL:与整数的比较比与varchar字段的比较快吗?

MySQL:与整数的比较比与varchar字段的比较快吗?,mysql,indexing,Mysql,Indexing,在“test”表中,我有一个带索引的整数字段TestID SELECT * FROM test WHERE TestID=1234 SELECT * FROM test WHERE TestID='1234' SELECT * FROM test WHERE TestID=COALESCE(1234, 0) SELECT * FROM test WHERE TestID=COALESCE('1234', '') 我现在使用第二个选项,因为在我的应用程序中,1234部分是动态插入的,也可以

在“test”表中,我有一个带索引的整数字段TestID

SELECT * FROM test WHERE TestID=1234

SELECT * FROM test WHERE TestID='1234'

SELECT * FROM test WHERE TestID=COALESCE(1234, 0)

SELECT * FROM test WHERE TestID=COALESCE('1234', '')
我现在使用第二个选项,因为在我的应用程序中,
1234
部分是动态插入的,也可以是NULL或空字符串,我不希望语句因此而失败


这些语句之间的速度差是多少?或者根本没有差异?

如果TestID列没有索引,那么varchar将比integer慢。但是,如果这个字段被索引,速度几乎不会有任何差别


另外,如果字符串很长,索引将更大,因此在这种情况下,最好使用integer,如果TestID列没有索引,则varchar将比integer慢。但是,如果这个字段被索引,速度几乎不会有任何差别


另外,如果字符串很长-索引将更大,因此在这种情况下,最好使用整数

回答标题问题:Yes回答标题问题:Yes该字段存储为整数(mediumint),因此索引永远不会太大,对吗?没错。关于值长度的短语与varchar字段有关。整数肯定不会变慢。字段存储为整数(mediumint),因此索引永远不会变得太大,对吧?没错。关于值长度的短语与varchar字段有关。整数肯定至少不会变慢。