2011-10-01 135 views
1

这是一个相当直接的问题,但我遇到了一个问题,找到一个明确的答案googling左右。在MySQL 5.1.53上,使用InnoDB和一个varchar(1024)字段(我为Exchange 2010事件ID编制索引)。我想知道什么时候我索引这个领域的最大密钥长度。如果密钥长度不够长,我想知道是否应该缩短字段并使用类似sha512哈希值的内容。InnoDB最大密钥长度

+0

的这个问题的答案已经给出[这里](http://stackoverflow.com/questions/3489041/mysqlerror-specified-key-was-too-long-max-key-length-是 - 1000-bytes/3489331#3489331)和[there](http://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max-key-length-is-767-bytes/1814594#1814594)。 –

回答

6

InnoDB内部最大密钥长度为3500字节,但MySQL本身将其限制为3072字节。此限制适用于多列索引中组合索引键的长度。

而且,如所指出的:

单个列索引的索引关键字可高达767个字节。相同的长度限制适用于任何索引键前缀。请参见第12.1.13节“CREATE INDEX语法”。

http://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html

相关问题