Puedes ejecutar cualquier consulta SQL en nuestra consola interactiva: Abrir consola SQL →
Índices en SQL: acelera tus consultas de forma inteligente
Un índice es una estructura que acelera las búsquedas en una tabla. Funciona como el índice de un libro: permite encontrar datos sin recorrer toda la tabla.
Tabla de contenidos
1. ¿Qué es un índice?
Un índice acelera las búsquedas en una tabla. Sin índices, SQL debe recorrer todas las filas (full scan).
CREATE INDEX idx_nombre
ON usuarios(nombre);
2. Crear un índice
CREATE INDEX idx_email
ON usuarios(email);
3. Índices UNIQUE
Garantizan que no existan valores duplicados.
CREATE UNIQUE INDEX idx_email_unico
ON usuarios(email);
4. Índices múltiples
Útiles para búsquedas combinadas.
CREATE INDEX idx_nombre_ciudad
ON usuarios(nombre, ciudad);
5. Cuándo usar índices
- Columnas usadas frecuentemente en WHERE.
- Columnas usadas en JOIN.
- Columnas con muchos valores distintos.
- Tablas grandes.
6. Cuándo NO usar índices
- Tablas pequeñas.
- Columnas con pocos valores distintos.
- Columnas que se actualizan constantemente.
- Columnas usadas en operaciones con funciones (LOWER, UPPER, etc.).
7. Ejemplos prácticos
CREATE INDEX idx_producto
ON productos(nombre);
CREATE INDEX idx_pedidos_usuario
ON pedidos(usuario_id);
CREATE UNIQUE INDEX idx_dni
ON usuarios(dni);
8. Ejercicios para practicar
- Crea un índice sobre la columna email.
- Crea un índice UNIQUE sobre dni.
- Crea un índice múltiple sobre nombre y ciudad.
- Explica cuándo usar índices.
- Explica cuándo NO usar índices.
CREATE INDEX idx_email
ON usuarios(email);
CREATE UNIQUE INDEX idx_dni
ON usuarios(dni);
CREATE INDEX idx_nombre_ciudad
ON usuarios(nombre, ciudad);
-- Se usan cuando una columna se consulta mucho o en tablas grandes.
-- No se usan en tablas pequeñas o columnas con pocos valores distintos.
9. Mini‑proyecto: Optimizar consultas de usuarios
CREATE INDEX idx_usuarios_email
ON usuarios(email);
CREATE INDEX idx_usuarios_ciudad
ON usuarios(ciudad);
10. Errores comunes
- Crear demasiados índices.
- Indexar columnas con pocos valores distintos.
- Indexar columnas que se actualizan constantemente.
- Confundir índices con claves primarias.
11. Preguntas frecuentes
¿Los índices aceleran todas las consultas?
No, solo las búsquedas específicas.
¿Los índices ocupan espacio?
Sí, cada índice ocupa almacenamiento.