Índice de expresión - Expression index

Un índice de expresión , también conocido como índice basado en funciones , es un índice de base de datos que se basa en una expresión genérica, en lugar de una o más columnas . Esto permite definir índices para condiciones de consulta comunes que dependen de los datos de una tabla, pero que en realidad no se almacenan en esa tabla.

Un uso común de un índice de expresión es admitir restricciones o búsquedas que no distinguen entre mayúsculas y minúsculas . Por ejemplo, si un sitio web desea que los nombres de usuario no distingan entre mayúsculas y minúsculas, pero aún así conservar el caso como lo ingresó originalmente el usuario, se puede crear un índice en la representación en minúsculas del nombre de usuario:

CREATE INDEX users__last_name_lower ON users( lower( last_name ) );

Eso creará un índice único en "lower (last_name)". Cualquier consulta que busque "inferior (apellido)" podría hacer uso de ese índice:

SELECT user_id FROM users WHERE lower( last_name ) = lower( 'Smith' );

Soporte de base de datos

Las principales bases de datos que admiten índices de expresión incluyen: DB2 (desde la versión 10.5), Oracle Database (desde la versión 8i.) Y PostgreSQL (desde al menos la versión 7).

Referencias