Обычно все индексы создаются в таблице во время создания самой таблицы командой CREATE TABLE.
CREATE INDEX дает возможность добавить индексы к существующим таблицам.
Также индекс можно создать следующей командой:
ALTER TABLE tbl_name ADD INDEX (field)
где field – наименование поля.
Рассмотрим пример. Пусть имеется таблица Student с полями idStudent (PK) и name.
Из описание видно, что в таблице уже имеется индекс типа PRIMARY, созданный автоматически при создании таблицы. Предположим, что необходим частый поиск по имени студента, для чего следует создать индекс:
ALTER TABLE student ADD INDEX (name(5));
В данном примере 5 – длина индекса. Здесь не следует пренебрегать данным параметром во избежание экономии памяти, т.к. чем больше длина индекса, тем больше места занимает таблица на жестком диске. Тем более меньшая длина индекса гораздо повысит скорость операции INSERT.
Проверяем созданный индекс:
SHOW INDEX FROM student;
После этого поиск, сортировка по имени студента будут происходить гораздо быстрее.
В СУБД MySQL удаление индексов производится операторами DROP INDEX или ALTER TABLE. Удаление первичных ключей (индексов PRIMARY KEY) осуществляется только с помощью оператора ALTER TABLE. Операторы удаления индексов имеют следующий синтаксис:
DROP INDEX <index_name> ON <bl_name>;
ALTER TABLE <tbl_name> DROP INDEX <index_name>;
Оператор для удаления индекса PRIMARY KEY имеет синтаксис:
ALTER TABLE <tbl_name> DROP PRIMARY KEY;
Если такой индекс с именем PRIMARY KEY создан не был, а таблица имеет один или несколько индексов UNIQUE, будет удален первый из них.
Удаление столбцов из таблицы влияет на индексы. Удаляя столбец из таблицы, вы тем самым удаляете этот столбец из индекса. Удаляя все индексируемые столбцы из таблицы, вы удаляете весь индекс.