Получи случайную криптовалюту за регистрацию!

Про индексы. Или как ускорить запрос к данным в 100 раз?! В S | Про BI и не только

Про индексы. Или как ускорить запрос к данным в 100 раз?!

В SQL индексы используются для повышения производительности запросов к базе данных, предоставляя способ быстрого поиска данных в таблице. Существует два основных типа индексов: кластеризованные и некластеризованные.

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

Пример создания кластеризованного индекса:
CREATE CLUSTERED INDEX ix_OrderID ON dbo.SalesOrders (OrderID);



Некластеризованный индекс — это отдельная от данных таблицы структура, которая содержит отсортированный список ключевых значений и указатель на соответствующую строку в таблице. Таблица может иметь несколько некластеризованных индексов, и они могут быть созданы для любого столбца (столбцов) таблицы. Некластеризованные индексы полезны для запросов, требующих сортировки или поиска на основе столбцов, не являющихся частью кластеризованного индекса.

Пример создания некластеризованного индекса:
CREATE NONCLUSTERED INDEX ix_TerritoryName ON dbo.Terriroties (TerritoryName);



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

А тут маленький подробный пример, как же работают эти индексы на практике)