Post #2995
1.96K
Covering indexes (Покрывающие индексы)
(описание к предыдущему посту)
Покрывающие индексы позволяют ускорить выполнение SQL-запросов за счёт исключения обращений к основной таблице, если все нужные данные уже есть в индексе. Они применябтся в базах данных для оптимизации запросов.
#### 1. Сравнение: Без покрывающего индекса vs с покрывающим индексом
Без покрывающего индекса (Without Covering Index):
- Система выполняет запрос, собирает все необходимые столбцы для запроса, но вынуждена обращаться к основной таблице базы данных
- Это менее эффективно, так как требует дополнительных операций чтения данных из таблицы.
С покрывающим индексом (With a Covering Index):
- Аналогичный процесс поиска активных пользователей, но теперь все необходимые столбцы для запроса уже включены в индекс.
- Система не нуждается в обращении к основной таблице, что значительно ускоряет выполнение запроса.
- Данные извлекаются напрямую из индекса, минуя основную таблицу.
#### 2. Пример создания покрывающего индекса (Covering Index)
В нижней правой части показан синтаксис создания покрывающего индекса:
Разъяснение элементов:
- Index Name (имя индекса):
- Key Columns (ключевые столбцы):
- Included Column (включённый столбец):
#### 3. Пример SQL-запроса (Query)
Этот запрос выбирает статус, фамилию, имя и email пользователей, у которых статус равен «Active», и сортирует результаты по фамилии и имени.
(описание к предыдущему посту)
Покрывающие индексы позволяют ускорить выполнение SQL-запросов за счёт исключения обращений к основной таблице, если все нужные данные уже есть в индексе. Они применябтся в базах данных для оптимизации запросов.
#### 1. Сравнение: Без покрывающего индекса vs с покрывающим индексом
Без покрывающего индекса (Without Covering Index):
- Система выполняет запрос, собирает все необходимые столбцы для запроса, но вынуждена обращаться к основной таблице базы данных
- Это менее эффективно, так как требует дополнительных операций чтения данных из таблицы.
С покрывающим индексом (With a Covering Index):
- Аналогичный процесс поиска активных пользователей, но теперь все необходимые столбцы для запроса уже включены в индекс.
- Система не нуждается в обращении к основной таблице, что значительно ускоряет выполнение запроса.
- Данные извлекаются напрямую из индекса, минуя основную таблицу.
#### 2. Пример создания покрывающего индекса (Covering Index)
В нижней правой части показан синтаксис создания покрывающего индекса:
CREATE INDEX IX_Users_Search
ON Users (Status, LastName, FirstName)
INCLUDE (Email);
Разъяснение элементов:
- Index Name (имя индекса):
IX_Users_Search — название созданного индекса.- Key Columns (ключевые столбцы):
Status, LastName, FirstName — используются для фильтрации (WHERE) и сортировки (ORDER BY) в запросе.- Included Column (включённый столбец):
Email — добавлен через INCLUDE для того, чтобы избежать обращения к основной таблице при извлечении email-адресов.#### 3. Пример SQL-запроса (Query)
SELECT
Status, LastName, FirstName, Email
FROM
Users
WHERE
Status = 'Active'
ORDER BY
LastName, FirstName;
Этот запрос выбирает статус, фамилию, имя и email пользователей, у которых статус равен «Active», и сортирует результаты по фамилии и имени.
- ❤ 5
- ✍ 5
- 🤝 2









