Sobes.tech
Senior

Индекси дар базаи додаҳо чист? Кадом намудҳои индексҳо вуҷуд доранд (кластерӣ ва ғайри кластерӣ)? Онҳо чӣ фарқ доранд? Дар як ҷадвал чанд индекс кластерӣ ва ғайри кластерӣ метавонад бошад?

sobes.tech AI

Ҷавоб аз AI

Индекс в базе данных — это структура данных, которая ускоряет поиск и сортировку записей в таблице, позволяя быстро находить нужные строки без полного сканирования таблицы.

Виды индексов:

  • Кластеризованный индекс (Clustered Index): определяет физический порядок хранения данных в таблице. Обычно таблица может иметь только один кластеризованный индекс, так как данные могут быть упорядочены только одним способом. При запросах с использованием кластеризованного индекса данные извлекаются быстрее, так как они физически расположены в нужном порядке.

  • Некластеризованный индекс (Non-Clustered Index): отдельная структура, которая содержит ключи индекса и указатели на физические строки данных. Таблица может иметь несколько некластеризованных индексов. Они не меняют физический порядок данных, а служат для быстрого поиска.

Отличия:

Характеристика Кластеризованный индекс Некластеризованный индекс
Физический порядок Определяет физический порядок Не влияет на физический порядок
Количество на таблицу Обычно 1 Много (зависит от СУБД)
Структура Данные таблицы организованы как индекс Отдельная структура с указателями

Количество индексов:

  • Кластеризованный индекс: 1 на таблицу
  • Некластеризованные индексы: зависит от СУБД, обычно от нескольких до десятков

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

-- Создание кластеризованного индекса
CREATE CLUSTERED INDEX idx_clustered ON TableName(ColumnName);

-- Создание некластеризованного индекса
CREATE NONCLUSTERED INDEX idx_nonclustered ON TableName(OtherColumn);