Мне было интересно об этом в течение довольно долгого времени, и наткнулся на ваше сообщение сегодня после того, как сделал некоторые из моих собственных исследований. Надеюсь, то, что я нашел, поможет вам.
http://dev.mysql.com/doc/refman/5.5/en/innodb-adaptive-hash.html От:
InnoDB имеет механизм, который отслеживает поиск индекса. Если InnoDB уведомляет , что запросы могут извлечь выгоду из построения индекса хеширования, он делает это автоматически. Эта функция включена опцией innodb_adaptive_hash_index или отключена --skip-innodb_adaptive_hash_index при запуске сервера.
Причина реализации этой функции объясняется здесь:
Если таблица подходит почти полностью в основной памяти, индекс хэш может ускорить до запросов, позволяя прямой поиск любого элемента, превращая значение индекса в виде указателя.
Больше на adaptive_hash_index можно найти здесь: http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_adaptive_hash_index
Там, они объясняют реальное поколение имени индекса:
Индекс хэш всегда строится на основе существующего InnoDB вторичный индекс , который организован как структура B-дерева. MySQL может построить индекс хеширования на префиксе любой длины ключа, определенного для B-дерева , в зависимости от шаблона поиска по индексу. Хэш-код может быть частичным; весь индекс B-дерева не должен быть кэширован в буферном пуле.
Наконец, есть немного больше индексов здесь: http://dev.mysql.com/doc/refman/5.5/en/index-btree-hash.html
Прочитав все это, я считаю, что до тех пор, пока ваша БД схемы и двигатели одинаковы и имеют одинаковые параметры конфигурации на в разных средах, вы должны быть в порядке, используя эти значения в сценарии эволюции/миграции.
Я думаю, что вы ответили на свой вопрос своим третьим предложением. Итак, ваш реальный вопрос - последнее предложение? –