T-SQL - Индексы
Indexes- это специальные таблицы поиска, которые поисковая машина по базам данных может использовать для ускорения поиска данных. Проще говоря,indexуказатель на данные в таблице. Указатель в базе данных очень похож на указатель в конце книги.
Например, если вы хотите сослаться на все страницы в книге, которые обсуждают определенную тему, вы сначала обратитесь к указателю, в котором перечислены все темы в алфавитном порядке, а затем сделана ссылка на один или несколько конкретных номеров страниц.
Индекс помогает ускорить запросы SELECT и предложения WHERE, но замедляет ввод данных с помощью операторов UPDATE и INSERT. Индексы можно создавать или удалять, не влияя на данные.
Создание индекса включает в себя оператор CREATE INDEX, который позволяет вам назвать индекс, указать таблицу и столбец или столбцы для индексации, а также указать, находится ли индекс в порядке возрастания или убывания.
Индексы также могут быть уникальными, подобно ограничению UNIQUE, поскольку индекс предотвращает дублирование записей в столбце или комбинации столбцов, в которых есть индекс.
СОЗДАТЬ ИНДЕКС, команда
Ниже приводится основной синтаксис CREATE INDEX.
Синтаксис
CREATE INDEX index_name ON table_name
Одностолбцовые индексы
Индекс с одним столбцом - это индекс, который создается на основе только одного столбца таблицы. Ниже приводится основной синтаксис.
Синтаксис
CREATE INDEX index_name
ON table_name (column_name)
пример
CREATE INDEX singlecolumnindex
ON customers (ID)
Уникальные индексы
Уникальные индексы используются не только для производительности, но и для целостности данных. Уникальный индекс не позволяет вставлять в таблицу повторяющиеся значения. Ниже приводится основной синтаксис.
Синтаксис
CREATE UNIQUE INDEX index_name
on table_name (column_name)
пример
CREATE UNIQUE INDEX uniqueindex
on customers (NAME)
Составные индексы
Составной индекс - это индекс по двум или более столбцам таблицы. Ниже приводится основной синтаксис.
Синтаксис
CREATE INDEX index_name on table_name (column1, column2)
пример
CREATE INDEX compositeindex
on customers (NAME, ID)
Независимо от того, создавать ли индекс с одним столбцом или составной индекс, примите во внимание столбцы, которые вы можете очень часто использовать в предложении WHERE запроса в качестве условий фильтрации.
Если используется только один столбец, следует выбрать индекс из одного столбца. Если есть два или более столбца, которые часто используются в предложении WHERE в качестве фильтров, составной индекс будет лучшим выбором.
Неявные индексы
Неявные индексы - это индексы, которые автоматически создаются сервером базы данных при создании объекта. Индексы автоматически создаются для ограничений первичного ключа и уникальных ограничений.
Команда DROP INDEX
Индекс можно удалить с помощью команды MS SQL SERVER DROP. Следует соблюдать осторожность при удалении индекса, поскольку производительность может снизиться или повыситься.
Синтаксис
Ниже приводится основной синтаксис.
DROP INDEX tablename.index_name
Когда избегать индексов?
Хотя индексы предназначены для повышения производительности баз данных, бывают случаи, когда их следует избегать. Следующие рекомендации указывают, когда следует пересмотреть использование индекса:
Индексы не следует использовать для небольших таблиц.
Таблицы, для которых выполняются частые, большие пакетные операции обновления или вставки, не следует индексировать.
Индексы не следует использовать для столбцов, содержащих большое количество значений NULL.
Столбцы, которыми часто манипулируют, не следует индексировать.