«Бог не меняет того, что (происходит) с людьми, пока они сами не изменят своих помыслов.» Коран, Сура 12:13

СУБД/лекция 6 семестр 2

Материал из Wiki
< СУБД
Версия от 19:12, 31 марта 2014; Vidokq (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

CREATE [UNIQUE|FULLTEXT] INDEX index_name
        ON tbl_name (col_name[(LENGTH)],... )
  • Nuvola apps error.pngКоманда CREATE INDEX в версиях MySQL до 3.22 не выполняет никаких действий.
  • 200px-Yes check.pngВ версии 3.22 и более поздних CREATE INDEX соответствует команде ALTER TABLE в части создания индексов.
  • Обычно все индексы создаются в таблице во время создания самой таблицы командой CREATE TABLE.
  • CREATE INDEX дает возможность добавить индексы к существующим таблицам.
  • Список столбцов в форме (col1,col2,...) создает индекс для нескольких столбцов. Величины индексов формируются путем конкатенации величин указанных столбцов.
Для столбцов типов CHAR и VARCHAR с помощью параметра col_name(length) могут создаваться индексы, для которых используется только часть столбца (для столбцов BLOB и TEXT нужно указывать длину). Команда, приведенная ниже, создает индекс, используя первые 10 символов столбца name:
CREATE INDEX part_of_name ON customer (name(10));

Поскольку большинство имен обычно имеют отличия друг от друга в первых 10 символах, данный индекс не должен быть намного медленнее, чем созданный из столбца name целиком. Кроме того, используя неполные столбцы для индексов, можно сделать файл индексов намного меньше, а это позволяет сэкономить место на диске и к тому же повысить скорость операций INSERT!

Bombilla amarilla - yellow Edison lamp.pngСледует учитывать, что в версии MySQL 3.23.2 и более поздних для таблиц типа MyISAM можно добавлять индекс только для столбцов, которые могут принимать величины NULL или для столбцов BLOB/TEXT.