这是一个相当直接的问题,但我在查找一个明确的答案谷歌时遇到了问题。在MySQL 5.1.53上,使用InnoDB和varchar(1024)字段(我正在索引Exchange 2010事件ID)。我想知道当我索引这个字段时最大密钥长度是多少。我想知道如果密钥长度不够长,我是否应缩短字段并使用sha512哈希值。
答案 0 :(得分:6)
InnoDB内部最大密钥长度为3500字节,但MySQL本身将此限制为3072字节。此限制适用于多列索引中组合索引键的长度。
并且,如上所述:
单列索引的索引键最多可达767个字节。相同的长度限制适用于任何索引键前缀。请参见第12.1.13节“CREATE INDEX语法”。
http://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html