5.4.4 Индексы столбцов
В MySQL могут быть проиндексированы столбцы всех типов. Использование
индексов на соответствующих столбцах представляет собой хороший способ
ускорения выполнения операций SELECT
.
Максимальное количество ключей и максимальная длина индексов определяется
обработчиком таблиц (see section 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 section 6.8 Полнотекстовый поиск в MySQL.