MySQL CREATE ALTER INDEX
Платформа MySQL поддерживает вариант инструкции CREATE INDEX, но не поддерживает инструкцию ALTER INDEX. Индексы MySQL всегда хранятся в иерархических структурах (B-tree) в файловой системе. Строки в индексе сжимаются одновременно по префиксам и по конечным пробелам. Синтаксис инструкции CREATE INDEX в MySQL следующий.
CREATE [UNIQUE | FULLTEXT] INDEX имя_индекса ON имя_таблицы (имя_столбиа(длина) [, …])
Где: FULLTEXT
Создается индекс для полнотекстового поиска в столбце. Полнотекстовые индексы поддерживаются только для таблиц типа MylSAM и типов данных CHAR, VARCHAR и TEXT. Предложение (длина) не поддерживается.
Платформа MySQL поддерживает синтаксис инструкции CREATE INDEX основного промышленного стандарта. Интересно, что MySQL также позволяет создавать индекс по первым символам из столбцов типа CHAR или VARCHAR (количество символов определяется параметром длина). В MySQL для столбцов типа BLOB или TEXT параметр длина указывать необходимо. Указание длины может быть полезно, если достаточной является избирательность, скажем, по первым десяти символам, и когда экономия места на диске очень важна. Например:
CREATE UNIQUE INDEX unq_pub_id ON publishers(pub_name(25), country(10))
В этом примере индексируются только первые 25 символов столбца pub_name и первые 10 символов столбца country.
Если говорить об общих правилах, то MySQL позволяет использовать, как минимум, 16 ключей на таблицу с общей максимальной длиной не менее 256 байт. Однако эти цифры могут изменяться в зависимости от системы хранения данных.