Я довольно долго размышлял об этом и наткнулся на ваш пост сегодня после того, как провел некоторые собственные исследования. Надеюсь, то, что я нашел, поможет вам.
С 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
После прочтения всего этого, я считаю, что, если ваша схема и механизмы БД одинаковы и имеют одинаковые параметры конфигурации в разных средах, вы должны использовать эти значения в сценарии эволюции / миграции. 1029 *