SQL Indexes

В этом учебном материале вы узнаете, как создавать и удалять индексы с синтаксисом и примерами.

Что такое индекс в SQL

Индекс — это метод настройки производительности, позволяющий быстрее извлекать записи. Индекс создает запись для каждого значения, которое появляется в индексированных столбцах. Каждое имя индекса должно быть уникальным в базе данных.

Создать индекс

Вы можете создать индексы в SQL с помощью оператора CREATE INDEX.

Синтаксис

Синтаксис CREATE INDEX в SQL.

CREATE [UNIQUE] INDEX index_name
ON table_name (column1, column2, … column_n);
UNIQUE
Модификатор UNIQUE указывает, что комбинация значений в индексированных столбцах должна быть уникальной
index_name
Имя, которое нужно присвоить индексу
table_name
Имя таблицы, в которой нужно создать индекс
column1, column2, … column_n
Столбцы для использования в индексе

Пример

Рассмотрим пример того, как создать индекс в SQL.
Например.

В этом примере мы создали индекс для таблицы website, который называется website_idx. Он состоит только из одного поля — поля site_name.
Мы также могли бы создать индексы с более чем одним полем, как показано ниже.

Это создаст индекс website_idx, который состоит из двух столбцов — site_name и server.

Уникальный индекс

Подобно первичному ключу, уникальный ключ позволяет вам выбрать один столбец или комбинацию столбцов, которые должны быть уникальными для каждой записи. Хотя у вас может быть только один первичный ключ для таблицы, вы можете создать столько уникальных индексов для таблицы, сколько вам нужно.
Чтобы создать уникальный индекс для таблицы, вам нужно указать ключевое слово UNIQUE в операторе CREATE INDEX.
Например.

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

Удалить индекс

Вы можете удалять индексы в SQL, используя оператор DROP INDEX.

Синтаксис

Синтаксис удаления индекса в SQL.

Для Oracle и PostgreSQL.

DROP INDEX index_name;

Для MySQL и MariaDB.

DROP INDEX index_name
ON table_name;

Для SQL Server.

DROP INDEX table_name.index_name;
index_name
Имя индекса для удаления
table_name
Имя таблицы, к которой принадлежит индекс

Пример

Давайте рассмотрим пример того, как удалить индекс с именем sites_idx из таблицы sites.
Для Oracle.

Поскольку каждое имя индекса должно быть уникальным в базе данных, нам не нужно указывать таблицу websites в операторе DROP INDEX в Oracle.

Для MySQL и MariaDB.

Для SQL Server.

Как видите, каждая база данных имеет уникальные различия в своем синтаксисе. Убедитесь, что вы используете правильную команду DROP INDEX.