Индексы SQL

Приветствую всех, сегодня разберем тему касаемо индексов на примерах.

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

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

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

Поиск значений в других столбцах, однако, выполняется уже не столь эффективно. Вы можете определить в качестве индекса один или несколько столбцов так, чтобы СУБД хранила отсортированный список содержимого удобным для вас образом.

Однако прежде чем создавать множество индексов, примите во внимание следующее.

  • Индексы повышают производительность операций выборки, но ухудшают производительность при выполнении таких операций, как добавление данных, их модификация и удаление. Вызвано это тем, что при выполнении подобных операций СУБД должна еще и динамически обновлять индекс.
  • Для хранения данных индекса требуется много места на жестком диске.
  • Не все данные подходят для индексации. Данные, которые не являются по своей сути уникальными (как, например, названия штатов в столбце cust_state), не дадут такого выигрыша от индексации, как данные, которые имеют больше возможных значений (как, например, имя и фамилия).
  • Индексы используются для фильтрации и сортировки данных. Если вы часто сортируете данные определенным образом, эти данные могут быть кандидатом на индексацию.
  • В качестве индекса можно определить несколько столбцов (например, с названием штата и названием города). Такой индекс можно использовать, только если данные будут отсортированы в порядке «штат плюс город». (Если вы захотите отсортировать данные по названию города, такой индекс использован не будет).

Индекс – это список (такой как библиографическая информация или перечень цитат, взятых
из литературы), который обычно располагают в алфавитном порядке перечисления
определенных данных.
Индексы в таблице позволяют получить данные из определенной записи без перебора всех
записей в таблице.
Типы индексов:
1) Кластеризованный индекс
2) Некластеризованный индекс:

  • заданный на неупорядоченной таблице
  • заданный на кластеризированной таблице


Кластеризованный индекс реализуется в виде сбалансированного дерева, которое поддерживает быстрое получение строк по значениям ключа кластеризованного индекса.


Кластеризированной называется таблица, данные в которой отсортированы по определенному столбцу или группе столбцов на которых задан кластеризованный индекс.


Некластеризованный индекс содержит некластеризованное ключевое значение и указатель на строку.

Индексы хранятся в виде B-деревьев (B – tree). “B” означает балансированное.

Представления это способ вывода ограниченного набора столбцов из реальной таблицы в виде виртуальной таблицы.


Обновлено: 16.01.2019 — 18:18

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.