Индекс покрытия по сравнению с кластерным индексом (индекс базы данных)

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

Я погуглил, но не получил однозначного ответа:

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

Я надеюсь, что кто-то может объяснить это мне в почти детском ответе:-)

С уважением Местика

Кстати, я использую IBM DB2 версии 9.7

1 ответ

Решение

Я не могу говорить с DB2, но следующее относится к SQL Server.

Когда все обязательные столбцы являются частью индекса, индекс называется "индексом покрытия". SQL Server 2005 ввел этот тип индекса, позволив иметь "включенные столбцы" в индексе. Это позволяет включать в индекс дополнительные столбцы сверх предела в 16 столбцов или столбцы, которые будут слишком большими для включения.

Хотя у вас может быть только один кластеризованный индекс на таблицу, вы можете иметь до 249 некластеризованных индексов на таблицу.

Имея индекс покрытия, доступный для удовлетворения запроса, SQL Server не нужно будет возвращаться к кластерному индексу, чтобы получить остальные данные, необходимые для запроса.

похотливый

Другие вопросы по тегам