concepto · intermedio · 2 min de lectura
EXPLAIN
EXPLAIN es un comando SQL que muestra el plan de ejecución de una query, revelando cómo el motor de base de datos planea acceder a los datos —índices, scans, joins— para diagnosticar y optimizar el rendimiento.
No requiere conocimientos previos.
Alcance en breve
Cubre
- EXPLAIN as a concept
No cubre
- implementation details
Supone
- The reader understands relevant fundamentals.
Resumen
EXPLAIN —o EXPLAIN ANALYZE— es la herramienta de diagnóstico más importante para trabajar con bases de datos SQL. Le pedís a la base de datos que te muestre cómo va a ejecutar una query, sin ejecutarla realmente —plan estimado—, o ejecutándola y midiendo tiempos reales —ANALYZE—.
El output muestra: qué tablas se acceden, en qué orden, qué índices se usan —o no—, qué tipo de scan se aplica —Seq Scan, Index Scan, Bitmap Scan—, cuántas filas estima procesar y el costo relativo de cada paso.
Alcance y supuestos
Cubre el uso de EXPLAIN en PostgreSQL y MySQL, interpretación del plan y diagnóstico de problemas comunes. Asume familiaridad con SQL.
Modelo mental
El GPS de un auto antes de arrancar un viaje. Te muestra la ruta planeada: qué calles tomar, dónde hay peajes, cuánto se estima tardar. Si la ruta es ineficiente, cambiás algo —evitás una avenida congestionada—. EXPLAIN es el GPS de tu query.
Uso práctico
- ✅ Diagnosticar queries lentas y verificar que los índices se estén usando.
- ❌ Queries triviales que siempre son rápidas.
Ejemplo trabajado: lectura de un EXPLAIN en PostgreSQL
EXPLAIN ANALYZE SELECT * FROM orders WHERE customer_id = 42;
-- Seq Scan on orders (cost=0.00..2500.00 rows=50 width=100)
-- Filtro: customer_id = 42 → sin índice, full scan.
Con índice: Index Scan using idx_orders_customer on orders.
Evidencia
- EXPLAIN está disponible en PostgreSQL, MySQL, SQLite y la mayoría de los motores SQL.
Fuentes citadas
- Wikipedia, Database index (Síntesis, 21-07-2026)