Максимальная длина ключа InnoDB - PullRequest
1 голос
/ 01 октября 2011

Это довольно простой вопрос, но у меня возникла проблема с поиском четкого ответа, гуглящего вокруг.В MySQL 5.1.53 с использованием InnoDB и поля varchar (1024) (я индексирую идентификаторы событий Exchange 2010).Мне интересно, какова максимальная длина ключа при индексировании этого поля.Мне интересно, следует ли мне сократить поле и использовать что-то вроде хэша sha512, если длина ключа недостаточно велика.

1 Ответ

6 голосов
/ 01 октября 2011

Внутренняя максимальная длина ключа InnoDB составляет 3500 байт, но сам MySQL ограничивает это до 3072 байт.Это ограничение применяется к длине комбинированного индексного ключа в многостолбцовом индексе.

И, как уже отмечалось:

Индексный ключ для индекса из одного столбца может составлять до 767 байтов.То же ограничение длины применяется к любому префиксу ключа индекса.См. Раздел 12.1.13, «Синтаксис CREATE INDEX».

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

...