Léxico TI › Bases de datos › Índice parcial

Índice parcial

Bases de datos Svenska → Actualizado: 2026-08-25

Un índice que cubre solo un subconjunto de filas, definido por una condición WHERE. CREATE INDEX ON orders (created_at) WHERE status = 'pending'. Más pequeño, más rápido y más barato de mantener.

Caso de uso: indexar solo las filas «interesantes». Lo clásico: soft delete (WHERE deleted_at IS NULL, el índice ignora las filas borradas), trabajos activos en una cola (la mayoría ya están terminados o archivados), o restricciones de unicidad sobre un subconjunto (UNIQUE ... WHERE active permite varios duplicados inactivos). La ganancia: si el 99% de las filas están «terminadas», el índice se vuelve 100 veces más pequeño. El planificador solo lo usa cuando el WHERE de la consulta coincide con la condición del índice o la implica. SQL Server lo llama «filtered index». Se diferencia del índice de expresión (que indexa un cálculo, no un subconjunto). Una optimización muy habitual en Postgres.

← Volver al léxico