MySQL查找性能PK unsigned INT vs index varchar(15)列

MySQL查找性能PK unsigned INT vs index varchar(15)列,mysql,database,performance,Mysql,Database,Performance,使用PK unsigned int(4字节)和varchar(15)(唯一索引)列查找MySQL表(目前有2百万行)是否会有显著的性能差异?varchar用于任何键的问题是它们可以保留空白。空白由任何不可在屏幕上读取的字符组成,如空格、制表符、回车符等。当您开始查找为什么表不在其键的末尾返回带有额外空格的记录时,使用VARCHAR作为键可能会使您的生活变得困难。 当然,您可以使用VARCHAR,但是您必须非常小心输入和输出。它们也会占用更多的空间,并且在执行查询时可能会比较慢。 整数类型有一

使用PK unsigned int(4字节)和varchar(15)(唯一索引)列查找MySQL表(目前有2百万行)是否会有显著的性能差异?

varchar用于任何键的问题是它们可以保留空白。空白由任何不可在屏幕上读取的字符组成,如空格、制表符、回车符等。当您开始查找为什么表不在其键的末尾返回带有额外空格的记录时,使用VARCHAR作为键可能会使您的生活变得困难。
当然,您可以使用VARCHAR,但是您必须非常小心输入和输出。它们也会占用更多的空间,并且在执行查询时可能会比较慢。
整数类型有一个包含10个有效字符的小列表,即0,1,2,3,4,5,6,7,8,9。它们是用作密钥的更好的解决方案。

如果希望具有更快查找的优势,您可以始终使用基于整数的键,并使用VARCHAR作为唯一值。

键越短意味着每个索引块的键越多,意味着检索索引块的次数越少,意味着更快的查找。

相关:utf8中的15个字符是60个字节-我会勇敢地说,如果再进一步考虑,它至少会慢15倍谢谢,你知道大致的区别是什么吗?请注意varchar索引是唯一的。