Volver al curso

SQL y Bases de Datos: Gestion de Datos para el Mundo Real

leccion
10 / 12
beginner
12 horas
Diseno de Bases de Datos

Indices y Optimizacion

Lectura
40 min~1 min lectura

Mejora el Rendimiento de tus Consultas

Los indices son estructuras que mejoran la velocidad de busqueda en tus tablas. Aprender a usarlos correctamente puede hacer la diferencia entre consultas que tardan milisegundos o minutos.

Que es un Indice?

Un indice es como el indice de un libro: te permite encontrar informacion sin tener que leer todo el contenido. En bases de datos, los indices crean estructuras de datos adicionales que aceleran las busquedas.

Crear Indices

-- Indice simple
CREATE INDEX idx_clientes_email ON clientes(email);

-- Indice compuesto (multiples columnas)
CREATE INDEX idx_pedidos_fecha_estado 
ON pedidos(fecha_pedido, estado);

-- Indice unico
CREATE UNIQUE INDEX idx_productos_codigo 
ON productos(codigo_barras);

Cuando Usar Indices

  • En columnas usadas en WHERE
  • En columnas de JOIN
  • En columnas de ORDER BY
  • En columnas de GROUP BY

Cuando NO Usar Indices

  • En tablas muy pequenas
  • En columnas con muchos valores nulos
  • En columnas que se actualizan frecuentemente
  • En columnas con bajo cardinalidad (pocos valores unicos)

Analizar Rendimiento con EXPLAIN

EXPLAIN SELECT * FROM clientes 
WHERE ciudad = Ciudad de Mexico 
AND estado = activo;

EXPLAIN te muestra como MySQL ejecuta tu consulta, si usa indices, y donde puedes mejorar.

Mejores Practicas

  • Analiza tus consultas mas frecuentes
  • No exageres con indices (ralentizan INSERT/UPDATE)
  • Usa indices compuestos en el orden correcto
  • Monitorea y elimina indices no utilizados