El Rendimiento Importa
Una consulta lenta puede arrastrar toda tu aplicación. Aprender a optimizar MySQL es crucial para cualquier desarrollador backend.
1. Usar Índices Correctamente
-- Crear índice
CREATE INDEX idx_email ON usuarios(email);
-- Índice compuesto (importa el orden)
CREATE INDEX idx_usuario_fecha ON pedidos(usuario_id, fecha);
-- Ver índices de una tabla
SHOW INDEX FROM usuarios;
2. EXPLAIN para Analizar Consultas
EXPLAIN SELECT u.nombre, COUNT(p.id) as total
FROM usuarios u
JOIN pedidos p ON u.id = p.usuario_id
WHERE p.fecha > '2024-01-01'
GROUP BY u.id;
3. Evitar SELECT *
-- ❌ Lento
SELECT * FROM productos WHERE categoria = 'tech';
-- ✅ Rápido
SELECT id, nombre, precio FROM productos WHERE categoria = 'tech';
4. Paginación Eficiente
-- ❌ Lento con offsets grandes
SELECT * FROM logs ORDER BY id LIMIT 100000, 20;
-- ✅ Rápido con seek method
SELECT * FROM logs WHERE id > 100000 ORDER BY id LIMIT 20;
5. Conclusión
La optimización de consultas es una habilidad esencial. Usa EXPLAIN regularmente y monitorea las consultas lentas de tu servidor.