Частичные (или, как еще их называют, условные) индексы — это индексы, которые охватывают только подмножество строк в таблице, определяемое заданным условием (предикатом). Они позволяют индексировать только те строки, которые важны для конкретного запроса, тем самым уменьшая размер индекса и ускоряя поиск по этим строкам.
Применение частичных индексов оправдано в следующих случаях:
Пример в PostgreSQL:
sql
В этом примере индекс active_users_idx создается только для строк, где значение поля status равно 'active'. Запросы типа SELECT * FROM users WHERE status = 'active' AND email = 'test@example.com' будут значительно быстрее благодаря этому индексу. Запросы без условия WHERE status = 'active' или с другим значением status не будут использовать этот частичный индекс.
Преимущества:
Недостатки: