digital-garden/dev/database/Покрывающий индекс.md
Struchkov Mark 8749f8afcd
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
Индекс базы данных.md
2024-10-25 21:35:39 +03:00

3.7 KiB
Raw Blame History

aliases tags date
covering indexes
покрывающего индекса
maturity/🌱
2024-06-09

Покрывающий индекс — это Индекс базы данных, который включает в себя все колонки, необходимые для выполнения определенного запроса, без необходимости обращения к основной таблице данных.

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

Пример создания покрывающего индекса в ../../meta/zero/00 PostgreSQL:

CREATE INDEX idx_example ON table_name (column1) INCLUDE (column2);

Такой индекс включает колонку column1 для индексирования и добавляет column2, которая не индексируется, но хранится рядом с индексом. Это позволяет выполнять следующий запрос, не обращаясь к основной таблице:

SELECT column1, column2 FROM table_name WHERE column1 = 'value';

Преимущества:

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

Недостатки:

  • Покрывающие индексы могут занимать больше места в памяти, особенно если в них включены несколько дополнительных колонок.
  • Увеличение времени на операции вставки, обновления и удаления, так как индекс требует обновления при изменениях данных.

Покрывающие индексы стоит использовать в следующих случаях:

  • Для оптимизации часто выполняемых SELECT-запросов, которые выбирают несколько колонок.
  • Когда необходимо минимизировать количество обращений к диску, чтобы ускорить выполнение запросов.
  • Для Online Analytical Processing, где важно быстрое чтение данных без необходимости частых обновлений.

Мета информация

Область:: ../../meta/zero/00 Базы Данных Родитель:: Индекс базы данных Источник:: Автор:: Создана:: 2024-06-09

Дополнительные материалы

Дочерние заметки