SQL - индексы
Индексы special lookup tablesкоторые поисковая машина по базам данных может использовать для ускорения поиска данных. Проще говоря, индекс - это указатель на данные в таблице. Указатель в базе данных очень похож на указатель в конце книги.
Например, если вы хотите сослаться на все страницы книги, в которой обсуждается определенная тема, вы сначала обратитесь к указателю, в котором перечислены все темы в алфавитном порядке, а затем сделана ссылка на один или несколько конкретных номеров страниц.
Индекс помогает ускорить SELECT запросы и WHERE предложений, но это замедляет ввод данных, с UPDATE и INSERTзаявления. Индексы можно создавать или удалять, не влияя на данные.
Создание индекса включает CREATE INDEX оператор, который позволяет присвоить индексу имя, указать таблицу и столбец или столбцы для индексации, а также указать, находится ли индекс в порядке возрастания или убывания.
Индексы также могут быть уникальными, например UNIQUE ограничение в том смысле, что индекс предотвращает дублирование записей в столбце или комбинации столбцов, для которых есть индекс.
Команда CREATE INDEX
Базовый синтаксис CREATE INDEX как следует.
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 в качестве фильтров, составной индекс будет лучшим выбором.
Неявные индексы
Неявные индексы - это индексы, которые автоматически создаются сервером базы данных при создании объекта. Индексы автоматически создаются для ограничений первичного ключа и уникальных ограничений.
Команда DROP INDEX
Индекс можно удалить с помощью SQL DROPкоманда. При удалении индекса следует соблюдать осторожность, поскольку производительность может либо снизиться, либо повыситься.
Основной синтаксис следующий -
DROP INDEX index_name;
Вы можете проверить главу « Ограничение ИНДЕКСА», чтобы увидеть некоторые реальные примеры индексов.
Когда следует избегать индексов?
Хотя индексы предназначены для повышения производительности базы данных, бывают случаи, когда их следует избегать.
Следующие ниже рекомендации указывают, когда следует пересмотреть использование индекса.
Индексы не следует использовать для небольших таблиц.
Таблицы с частыми крупными пакетными обновлениями или операциями вставки.
Индексы не следует использовать для столбцов, содержащих большое количество значений NULL.
Столбцы, которыми часто манипулируют, не следует индексировать.