CREATE [UNIQUE|FULLTEXT] INDEX index_name
ON tbl_name (col_name[(length)],... )
Команда CREATE INDEX в версиях
MySQL до 3.22 не выполняет никаких
действий. В версии 3.22 и более
поздних CREATE INDEX
соответствует команде ALTER
TABLE в части создания индексов.
See Раздел 6.5.4, «Синтаксис оператора ALTER TABLE».
Обычно все индексы создаются в
таблице во время создания самой
таблицы командой CREATE TABLE.
See Раздел 6.5.3, «Синтаксис оператора CREATE TABLE». CREATE
INDEX дает возможность добавить
индексы к существующим таблицам.
Список столбцов в форме
(col1,col2,...) создает индекс
для нескольких столбцов. Величины
индексов формируются путем
конкатенации величин указанных
столбцов.
Для столбцов типов CHAR и
VARCHAR с помощью параметра
col_name(length) могут
создаваться индексы, для которых
используется только часть столбца
(для столбцов BLOB и
TEXT нужно указывать
длину). Команда, приведенная ниже,
создает индекс, используя первые 10
символов столбца name:
mysql> CREATE INDEX part_of_name ON customer (name(10));
Поскольку большинство имен обычно
имеют отличия друг от друга в
первых 10 символах, данный индекс не
должен быть намного медленнее, чем
созданный из столбца name целиком.
Кроме того, используя неполные
столбцы для индексов, можно
сделать файл индексов намного
меньше, а это позволяет сэкономить
место на диске и к тому же повысить
скорость операций INSERT!
Следует учитывать, что в версии MySQL
3.23.2 и более поздних для таблиц типа
MyISAM можно добавлять
индекс только для столбцов,
которые могут принимать величины
NULL или для столбцов
BLOB/TEXT.
Чтобы получить более подробную
информацию о том, как MySQL
использует индексы, See
Раздел 5.4.3, «Использование индексов в MySQL».
С помощью опции FULLTEXT
можно индексировать только
столбцы VARCHAR и
TEXT и только в таблицах
MyISAM. Эта возможность
доступна только в версии MySQL 3.23.23 и
выше. See Раздел 6.8, «Полнотекстовый поиск в MySQL».
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
