Los índices y las claves foraneas son excelentes herramientas cuando se enfrenta a grandes bases de datos. Pueden ser la respuesta a un buen diseño y gran rendimiento. En este artículo, revisamos algunos consejos para comprender el cómo usar estas herramientas de manera eficiente y agilizar el trabajo con bases de datos complejas.

Para los ejemplos se utilizo DBSchema. Esta herramienta está orientada a diagramas, integra muchas características y tiene un precio adecuado.

Llaves Foráneas

Es un error común evitar crear claves foráneas en una base de datos porque afectan negativamente al rendimiento. Es cierto que las claves foráneas afectarán las instrucciones INSERT, UPDATE y DELETE por que estas realizan comprobación de datos, pero mejoran el rendimiento general de una base de datos.

El principal beneficio de las claves foráneas es que hacen cumplir la concistencia de los datos, lo que significa que mantienen limpia la base de datos.

Como ejemplo, considere las dos tablas a continuación. A las dos les faltan claves externas y si eliminamos un departamento, los empleados asociados con él permanecerán en la tabla de empleados como «registros incorrectos».  Este escenario ocurre con mucha frecuencia y conducen a una base de datos llena de basura que disminuye el rendimiento.

Sin clave foránea:

Con clave foranea

Índices

Un índice para una base de datos es como una tabla de contenido para un libro. La búsqueda de datos basada en una columna que forma parte del índice nos permitirá hacer uso del índice para acceder rápidamente al registro. 

Considere la tabla de empleados con un índice en firstname, la ejecución de la consulta a continuación utilizará este índice.

Puntos importantes que se debe saber sobre los índices:

Las bases de datos solo usan un índice por tabla y consulta

Digamos que creamos dos índices en la tabla empleados idx_firstname y idx_lastname. Si ejecutamos la consulta a continuación, la base de datos decidirá usar solo uno de los dos índices.

Comparación de índice

Al ejecutar una consulta, la base de datos comparará los índices con respecto al número de entradas diferentes que contiene.

Por ejemplo, sí tenemos 2000 registros diferentes para el firstname y 5000 registros diferentes para el lastname, es más probable que el uso del índice de lastname devuelva un número menor de filas que se ajusten al criterio de búsqueda. Por lo tanto, se utilizará ese índice.

Índices compuestos

Un índice que contiene dos o más columnas es un índice compuesto. Cuando se usa un índice compuesto, la consulta siempre debe contener la primera columna del índice.

Por ejemplo, considere que tenemos el índex idx(firstname, lastname). Este índice funcionará perfectamente en la próxima consulta.

Pero no funcionará para este:

índices agrupados

Dado la analogía desde el principio, en un índice agrupado, la tabla de contenido se encuentra al final del libro. En un índice no agrupado, la tabla de contenido se encuentra en un lugar diferente, fuera del libro. Los índices agrupados se recomiendan cuando tienen menos actualizaciones en sus datos. 

Al crear un índice agrupado, la tabla misma se convierte en el índice.

Conclusión

Las claves externas son muy útiles para mantener limpia una base de datos y no afectará las instrucciones SELECT. Los índices ayudan a explotar rápidamente la base de datos y encontrar los datos que necesita. Saber cómo y cuándo usarlos mejorará el rendimiento de la base de datos y facilitará su trabajo.


Este artículo se encuentra basado en The Secrets of Indexes and Foreign Keys.

Uso de índices y llaves foráneas
Si te gusto, comparte ...Email this to someone
email
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook