1
這是一個相當直接的問題,但我遇到了一個問題,找到一個明確的答案googling左右。在MySQL 5.1.53上,使用InnoDB和一個varchar(1024)字段(我爲Exchange 2010事件ID編制索引)。我想知道什麼時候我索引這個領域的最大密鑰長度。如果密鑰長度不夠長,我想知道是否應該縮短字段並使用類似sha512哈希值的內容。InnoDB最大密鑰長度
這是一個相當直接的問題,但我遇到了一個問題,找到一個明確的答案googling左右。在MySQL 5.1.53上,使用InnoDB和一個varchar(1024)字段(我爲Exchange 2010事件ID編制索引)。我想知道什麼時候我索引這個領域的最大密鑰長度。如果密鑰長度不夠長,我想知道是否應該縮短字段並使用類似sha512哈希值的內容。InnoDB最大密鑰長度
InnoDB內部最大密鑰長度爲3500字節,但MySQL本身將其限制爲3072字節。此限制適用於多列索引中組合索引鍵的長度。
而且,如所指出的:
單個列索引的索引關鍵字可高達767個字節。相同的長度限制適用於任何索引鍵前綴。請參見第12.1.13節「CREATE INDEX語法」。
http://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html
的這個問題的答案已經給出[這裏](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)。 –