Sobes.tech
Назад к вопросам
Middle+
6

Что такое покрывающий индекс (INCLUDE в индексах)?

Компании, где спрашивали
СБК ПАРУС

Ответ от нейросети

sobes.tech AI

Покрывающий индекс (covering index) — это индекс, который содержит все колонки, необходимые для выполнения конкретного запроса, благодаря чему СУБД может получить все данные из индекса, не обращаясь к основной таблице. В SQL Server и некоторых других СУБД для этого используется ключевое слово INCLUDE, позволяющее добавить в индекс дополнительные колонки, которые не участвуют в ключе индекса, но хранятся в структуре индекса.

Например, если у вас есть индекс по колонке UserId, а в запросе вы выбираете UserId и UserName, то можно создать индекс с ключом UserId и добавить UserName через INCLUDE. Это ускорит запрос, так как не потребуется дополнительное чтение из таблицы.

Пример создания индекса с INCLUDE в T-SQL:

CREATE INDEX IX_Users_UserId ON Users(UserId) INCLUDE (UserName);

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