🎯 Objetivo:
Entender qué son los planes de ejecución, cómo leerlos y cómo optimizar consultas para mejorar el rendimiento en bases de datos.
🔍 ¿Qué es un plan de ejecución?
-
Es la ruta o estrategia que el motor de base de datos usa para ejecutar una consulta SQL.
-
Muestra el orden y método en que se leen tablas, aplican filtros, unen datos, etc.
⚙️ ¿Por qué es importante?
-
Permite detectar consultas lentas.
-
Ayuda a entender qué índices se están usando o si se está haciendo un escaneo completo (table scan).
-
Permite ajustar consultas para que el motor las ejecute más rápido.
🧩 Componentes comunes en un plan de ejecución
| Componente | Descripción |
|---|---|
| Seq Scan (Table Scan) | Lee toda la tabla fila por fila (lento). |
| Index Scan | Usa índice para buscar filas específicas (rápido). |
| Join Types | INNER JOIN, HASH JOIN, MERGE JOIN, etc. |
| Filter | Condición aplicada para filtrar filas. |
| Cost | Estimación de recursos para la operación. |
🔧 Cómo ver un plan de ejecución (ejemplo en PostgreSQL)
Ejecuta:
Salida típica:
Esto indica que usa el índice idx_nombre y es rápido.
🚀 Consejos para optimizar consultas
-
Usa índices en columnas filtradas o unidas frecuentemente.
-
Evita usar
SELECT *; selecciona solo columnas necesarias. -
Revisa joins: asegúrate que tengan índices adecuados.
-
Reduce subconsultas complejas o reemplázalas por joins.
-
Usa agregaciones con índices si es posible.
📝 Actividad práctica
-
Crea una consulta lenta (ejemplo: sin índices).
-
Usa
EXPLAIN ANALYZEpara ver el plan. -
Crea un índice y vuelve a ejecutar la consulta y plan para comparar.
-
Describe qué cambio observaste en el plan y en el tiempo de ejecución.
✅ Revisión rápida
-
¿Qué indica un
Seq Scanen un plan de ejecución? -
¿Por qué es mejor un
Index Scan? -
¿Qué comando permite ver el plan de ejecución en PostgreSQL?