SQL — Индексы

SQL — Индексы

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

Например, если вы хотите сослаться на все страницы в книге, на которых рассмотрена определенная тема, вам сначала нужно сослаться на индекс, в котором перечислены все темы в алфавитном порядке, а затем на несколько конкретных номеров страниц.
Индекс позволяет увеличить производительность запросов SELECT и WHERE, но замедляет ввод данных с помощью операторов UPDATE и INSERT. Индексы можно создать или удалить не затрагивая данные.

Создание индекса включает инструкцию CREATE INDEX, которая позволяет указать индекс, таблицу и столбцы или столбцы для индексации, а также задать порядок индексации: по возрастанию или по убыванию.

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

Команда CREATE INDEX

Основной синтаксис CREATE INDEX следующий.

Практический курс по созданию веб-приложения на PHP & MySQL с нуля!

Изучите курс и создайте ваше первое приложение на PHP всего за 3 дня!

Изучить курс
CREATE INDEX index_name ON table_name;

Одиночные индексы

Индекс для одного столбца создается на основе только одного столбца таблицы. Основной синтаксис следующий.

CREATE INDEX index_name
ON table_name (column_name);

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

Уникальные индексы используются не только для увеличения производительности, но и для обеспечения целостности данных. Уникальный индекс запрещает вносить в таблицу дублированные данные. Основной синтаксис следующий.

CREATE UNIQUE INDEX index_name
on table_name (column_name);

Составные индексы

Составной индекс — это индекс для одного или более столбцов таблицы. Его основной синтаксис следующий.

CREATE INDEX index_name
on table_name (column1, column2);

Для создания как одиночных, так и составных индексов как правило рекомендуется выбирать столбцы, которые могут часто использоваться в запросе WHERE в качестве фильтра условия.

Если вам нужен только один столбец, тогда используется одиночный индекс. Если у вас есть несколько столбцов, которые часто используются в запросе WHERE в качестве фильтра, то лучше выбрать составной индекс.

Неявные индексы

Неявные индексы — это индексы, которые автоматически создаются сервером базы данных при создании объекта. Индексы автоматически создаются для ограничений primary key и unique.

Команда DROP INDEX

Индекс можно удалить с помощью команды SQL DROP. При удалении индекса нужно быть осторожным, потому что это может повлиять на производительность.

Основной синтаксис следующий:

DROP INDEX index_name;

Некоторые практические примеры использования индексов вы можете найти в главе Ограничение INDEX.

Когда не следует использовать индексы?

Хотя индексы предназначены для повышения производительности базы данных, бывают случаи, когда их использовать не следует.
Ниже приведен список случаев, в которых использовать индексы не рекомендуется.

Индексы не должны использоваться в небольших таблицах.

Индексы не должны в таблицы, в которых часто выполняются массовые операции update или insert.

Индексы не должны использоваться для столбцов, содержащих большое количество значений NULL.

Столбцы, которые часто обрабатываются, также не должны индексироваться.

Источник: https://www.tutorialspoint.com/

Редакция: Команда webformyself.

Практический курс по созданию веб-приложения на PHP & MySQL с нуля!

Изучите курс и создайте ваше первое приложение на PHP всего за 3 дня!

Изучить курс

Хотите изучить MySQL?

Прямо сейчас посмотрите 24-х часовой курс по базе данных MySQL!

Смотреть курс

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree