От автора: индексы SQL представляют собой специальные таблицы, которые поисковая система базы данных может использовать для ускорения поиска данных. Проще говоря, индекс является указателем на данные в таблице. Индекс в базе данных очень похож на содержание в конце книги.
Например, если вы хотите сослаться на все страницы в книге, на которых рассмотрена определенная тема, вам сначала нужно сослаться на индекс, в котором перечислены все темы в алфавитном порядке, а затем на несколько конкретных номеров страниц.
Индекс позволяет увеличить производительность запросов SELECT и WHERE, но замедляет ввод данных с помощью операторов UPDATE и INSERT. Индексы можно создать или удалить не затрагивая данные.
Создание индекса включает инструкцию CREATE INDEX, которая позволяет указать индекс, таблицу и столбцы или столбцы для индексации, а также задать порядок индексации: по возрастанию или по убыванию.
Индексы также могут быть уникальными, например ограничение UNIQUE, в котором мы запрещаем добавление дублирующих записей в столбец или в комбинацию столбцов с указанным индексом.
Команда CREATE INDEX
Основной синтаксис CREATE INDEX следующий.
1 |
CREATE INDEX index_name ON table_name; |
Одиночные индексы
Индекс для одного столбца создается на основе только одного столбца таблицы. Основной синтаксис следующий.
1 2 |
CREATE INDEX index_name ON table_name (column_name); |
Уникальные индексы
Уникальные индексы используются не только для увеличения производительности, но и для обеспечения целостности данных. Уникальный индекс запрещает вносить в таблицу дублированные данные. Основной синтаксис следующий.
1 2 |
CREATE UNIQUE INDEX index_name on table_name (column_name); |
Составные индексы
Составной индекс — это индекс для одного или более столбцов таблицы. Его основной синтаксис следующий.
1 2 |
CREATE INDEX index_name on table_name (column1, column2); |
Для создания как одиночных, так и составных индексов как правило рекомендуется выбирать столбцы, которые могут часто использоваться в запросе WHERE в качестве фильтра условия.
Если вам нужен только один столбец, тогда используется одиночный индекс. Если у вас есть несколько столбцов, которые часто используются в запросе WHERE в качестве фильтра, то лучше выбрать составной индекс.
Неявные индексы
Неявные индексы — это индексы, которые автоматически создаются сервером базы данных при создании объекта. Индексы автоматически создаются для ограничений primary key и unique.
Команда DROP INDEX
Индекс можно удалить с помощью команды SQL DROP. При удалении индекса нужно быть осторожным, потому что это может повлиять на производительность.
Основной синтаксис следующий:
1 |
DROP INDEX index_name; |
Некоторые практические примеры использования индексов вы можете найти в главе Ограничение INDEX.
Когда не следует использовать индексы?
Хотя индексы предназначены для повышения производительности базы данных, бывают случаи, когда их использовать не следует.
Ниже приведен список случаев, в которых использовать индексы не рекомендуется.
Индексы не должны использоваться в небольших таблицах.
Индексы не должны в таблицы, в которых часто выполняются массовые операции update или insert.
Индексы не должны использоваться для столбцов, содержащих большое количество значений NULL.
Столбцы, которые часто обрабатываются, также не должны индексироваться.
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.