Articulo de referencia

Índice parcial

En las bases de datos , un índice parcial , también conocido como índice filtrado, es un índice al que se le aplica alguna condición para que incluya un subconjunto de filas en ...

En las bases de datos , un índice parcial , también conocido como índice filtrado, es un índice al que se le aplica alguna condición para que incluya un subconjunto de filas en la tabla .

Esto permite que el índice se mantenga pequeño, aunque la tabla sea bastante grande, y que tenga una selectividad extrema.

Supongamos que tiene una tabla de transacciones donde las entradas comienzan con ESTADO = 'A' (activo) y luego pueden pasar por otros estados ('P' para pendiente, 'W' para "en proceso") antes de llegar a un estado final, 'F', en el cual es poco probable que se procese nuevamente.

En PostgreSQL, un índice parcial útil podría definirse de la siguiente manera:

CREATE INDEX partial_status ON txn_table ( status ) WHERE status IN ( 'A' , 'P' , 'W' );

Este índice no se molestaría en almacenar ninguna de las millones de filas que han alcanzado el estado "final", 'F', y permitiría que las consultas que buscan transacciones que aún "necesitan trabajo" busquen de manera eficiente a través de este índice.

De forma similar, se puede utilizar un índice parcial para indexar solo aquellas filas en las que una columna no sea nula, lo que resultará beneficioso cuando la columna normalmente sea nula.

crear índice partial_object_update en object_table ( updated_on ) donde updated_on no es nulo ;

Este índice permitiría que la siguiente consulta lea solo las tuplas actualizadas:

seleccionar * de object_table donde updated_on no es nulo ordenar por updated_on ;

No es necesario que la condición sea la misma que el criterio del índice; el artículo de Stonebraker que se presenta a continuación muestra varios ejemplos con índices similares a los siguientes:

crear índice partial_salary en empleado ( edad ) donde salario > 2100 ;

Apoyo

En SQL Server , este tipo de índice se denomina índice filtrado . [ 1 ]

Los índices parciales son compatibles con PostgreSQL desde la versión 7.2, publicada en febrero de 2002. [ 2 ]

SQLite admite índices parciales desde la versión 3.8.0. [ 3 ]

MongoDB admite índices parciales desde la versión 3.2. [ 4 ]

Referencias

  1. Documentación de SQL Server 2008: Directrices de diseño de índices filtrados . Microsoft TechNet .
  2. ^ "Documentación de PostgreSQL: Notas de la versión: Versión 7.2" . PostgreSQL . Consultado el 9 de octubre de 2009 . Habilitar índices parciales (Martijn van Oosterhout)
  3. "Índices parciales" . Consultado el 4 de febrero de 2014 .
  4. Notas de la versión V302 de MongoDB .
  • Argumentos a favor de los índices parciales