В MySQL могут быть проиндексированы столбцы всех типов. Использование
индексов на соответствующих столбцах представляет собой хороший способ
ускорения выполнения операций SELECT
.
Максимальное количество ключей и максимальная длина индексов определяется обработчиком таблиц (see Глава 7, Типы таблиц MySQL). Можно иметь по меньшей мере 16 ключей на всех обработчиках таблиц и общую длину индексов по меньшей мере 256 байтов.
Для столбцов типов CHAR
и VARCHAR
можно индексировать префикс столбца. Это
намного быстрее и требует меньше дискового пространства, чем индексация
всего столбца. Используемый в команде CREATE TABLE
синтаксис для
индексации префикса столбца выглядит примерно так:
KEY index_name (col_name(length))
В следующем примере создается индекс для первых 10 символов в столбце name
:
mysql> CREATE TABLE test ( -> name CHAR(200) NOT NULL, -> KEY index_name (name(10)));
Для столбцов типа BLOB
и TEXT
индексировать необходимо префикс столбца.
Нельзя индексировать столбец целиком.
В версии MySQL 3.23.23 и более поздних можно также создавать специальные
индексы FULLTEXT
. Они используются для полнотекстового поиска.
Полнотекстовые индексы FULLTEXT
поддерживают только таблицы типа MyISAM
.
Они могут создаваться только по столбцам VARCHAR
и TEXT
. Индексация всегда
производится для целого столбца, а частичная индексация не поддерживается.
See Раздел 6.8, «Полнотекстовый поиск в MySQL».