de Martin LE TARNEC.

¿Cuándo indexar?


Si el concepto de los índices basados en funciones es nuevo para ti, podrías tratar de indexar todo, pero eso es lo último que deberías hacer. La razón es que cada índice causa generalmente un mantenimiento. Los índices basados en funciones son particularmente problemáticos porque es muy fácil crear índices redundantes.

La búsqueda insensible entre mayúscula y minúscula puede implementarse con la función LOWER:

SELECT first_name, last_name, phone_number
  FROM employees
 WHERE LOWER(last_name) = LOWER('winand')

Un índice sencillo no soporta ambos métodos para ignorar la distinción entre mayúscula y minúscula. Se podría, obviamente, crear un segundo índice sobre LOWER(last_name) para esta sentencia, pero eso significaría que la base de datos debería mantener dos índices por cada insert,update, y delete (ver también Capítulo 8, “Modifying Data).Para que con un índice sea suficiente, se podría usar consistentemente la misma función a lo largo de su aplicación.

Sugerencia

Unifica el camino de acceso; un índice puede ser usado por varias sentencias.

Aviso

A veces, las herramientas ORM utilizan UPPER y LOWER sin dar a conocer al desarrollador. Hibernate, por ejemplo, inyecta un LOWER implícito para las búsquedas sin distinciones entre mayúscula y minúscula.

Sugerencia

Se ha de tener siempre el objetivo de indexar el dato original así como la información más útil dentro de un índice.

Si te gusta mi manera de explicar, te encantará mi libro.

Acerca del autor

Foto de Markus Winand

Markus Winand enseña eficientemente SQL, en casa y online. Minimiza el tiempo de desarrollo utilizando moderno SQL y optimiza el tiempo de ejecución con indexación inteligente. Para ello también ha publicado el libro SQL Performance Explained.

“Use The Index, Luke” de Markus Winand se halla bajo licencia Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Aspectos legales | Contacto | SIN GARANTÍA | Marcas | Privacy | CC-BY-NC-ND 3.0 licencia