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

时间:2014-04-03 10:34:40

标签: mysql database performance

使用PK unsigned int(4字节)与varchar(15)(唯一索引)列查找MySQL表(当前为2M行)之间会有显着的性能差异吗?

2 个答案:

答案 0 :(得分:0)

VARCHAR用于任何KEY的问题在于它们可以容纳WHITE SPACE。空格由任何非屏幕可读字符组成,如空格标签,回车等。当你开始寻找为什么表没有返回末尾有额外空格的记录时,使用VARCHAR作为键会让你的生活变得困难他们的钥匙。
当然,你可以使用VARCHAR,但你必须非常小心输入和输出。它们也占用更多空间,在进行查询时可能会更慢。
整数类型有一个包含10个有效字符的小列表,0,1,2,3,4,5,6,7,8,9。它们是用作密钥的更好的解决方案。
您可以始终使用基于整数的键,并使用VARCHAR作为UNIQUE值,如果您希望具有更快查找的优势。

答案 1 :(得分:0)

较短的密钥意味着每个索引块的密钥更多,意味着更少的索引块检索,意味着更快的查找。