Bases de datos · Avanzado 1

Planes de ejecución e índices

Cómo leer planes, medir consultas y diseñar índices útiles sin perjudicar escrituras ni ocupar espacio innecesario.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Conviene haber comprendido Calidad de consultas II.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Planes de ejecución con Índices y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Las primeras secciones se leen sin instalar nada. Para practicar SQL prepara PostgreSQL o un DBMS equivalente.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Planes de ejecución y Índices? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Aprenderás a mejorar consultas usando evidencia: medirás su comportamiento, interpretarás un plan de ejecución y decidirás cuándo un índice ayuda o solo añade costo.

Al terminar podrás
  • El tiempo observado y el plan explican problemas diferentes
  • Un índice acelera ciertos accesos y encarece cada escritura
  • La mejor consulta conserva el significado y reduce trabajo
01
Medir antes de cambiar

El tiempo observado y el plan explican problemas diferentes

EXPLAIN muestra la estrategia estimada; EXPLAIN ANALYZE, cuando el motor lo permite, ejecuta y compara estimaciones con filas reales. Una consulta lenta puede deberse a lecturas, CPU, bloqueos, red o falta de memoria, no solo a su texto.

01

Define una carga y datos representativos.

02

Compara filas estimadas y reales en cada operador.

03

Distingue latencia individual de capacidad bajo concurrencia.

Comprueba lo aprendido · 01

¿El operador con mayor costo estimado es siempre el responsable del tiempo real?

Mostrar respuesta +

No. El costo es una estimación interna, no milisegundos. Se contrasta con tiempo, filas reales, lecturas y esperas antes de concluir.

02
Diseñar índices

Un índice acelera ciertos accesos y encarece cada escritura

Un índice B-tree ordena claves y favorece igualdades, rangos y ordenaciones compatibles. En un índice compuesto, el orden de columnas debe seguir los patrones de filtro y orden. Baja selectividad o tablas pequeñas pueden favorecer un recorrido completo.

01

Indexa consultas frecuentes, no columnas por costumbre.

02

Considera el prefijo y el orden de un índice compuesto.

03

Mide espacio, mantenimiento y costo de INSERT, UPDATE y DELETE.

Comprueba lo aprendido · 02

¿Por qué crear un índice por cada columna puede empeorar el sistema?

Mostrar respuesta +

Cada índice ocupa espacio, debe actualizarse en las escrituras y añade opciones al optimizador. Además, varios índices simples no sustituyen siempre a uno compuesto adecuado.

03
Optimizar con método

La mejor consulta conserva el significado y reduce trabajo

Conviene filtrar temprano, pedir solo columnas necesarias, evitar transformaciones que oculten la columna indexada y revisar la granularidad de las uniones. Cada cambio se prueba con el mismo resultado esperado y varias cargas.

01

Una condición sargable permite buscar por el valor almacenado.

02

Paginar por una clave estable evita saltos costosos y duplicados.

03

Una mejora local no debe degradar el conjunto de trabajo.

Comprueba lo aprendido · 03

¿Por qué una consulta más corta no es necesariamente más rápida?

Mostrar respuesta +

Porque la cantidad de texto no determina el trabajo físico. Importan el plan, los datos, los índices, las lecturas, la memoria y la concurrencia.

Resumen de la sección

Tu recorrido en tres ideas

  1. El tiempo observado y el plan explican problemas diferentes
  2. Un índice acelera ciertos accesos y encarece cada escritura
  3. La mejor consulta conserva el significado y reduce trabajo
PROFUNDIZACIÓN / LABORATORIO GUIADO

Diagnostica una consulta antes de indexar

Une selectividad, estadísticas, operadores físicos y costo de escritura para evitar la idea simplista de que “más índices” siempre significa “más velocidad”.

CASO

Un informe de pedidos por cliente y fecha tarda ocho segundos en producción, pero parece rápido con pocos datos de prueba.

Procedimiento

  1. Define resultado, carga, volumen y tiempo de referencia.
  2. Obtén el plan con filas estimadas y reales; identifica el primer punto donde divergen.
  3. Propón un índice o reescritura, repite la misma medición y comprueba el costo en escrituras.

Evidencia mínima

  • Mismo resultado y conjunto de datos.
  • Plan anterior y posterior con filas y lecturas.
  • Tiempo en frío, caliente y con una carga representativa.
Mostrar razonamiento modelo +

Una respuesta sólida no empieza creando el índice. Primero demuestra si el costo proviene del acceso, la unión, una estimación equivocada o una espera. El cambio elegido debe explicar qué operador deja de hacer trabajo y qué mantenimiento añade.

Para ir más lejos

¿Qué cambiaría si el 40 % de los pedidos perteneciera a un solo cliente?

CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Crear índices sin medir consultas ni carga de escritura.

ERROR 02

Comparar tiempos con datos, caché o resultados diferentes.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Diagnostica una consulta de pedidos por cliente y fecha: formula una línea base, interpreta el plan y propone un índice y una reescritura.

Mostrar pauta de corrección +
Una respuesta sólida:
  • Conserva exactamente el resultado.
  • Relaciona operadores con filas reales y lecturas.
  • Mide beneficios y costos bajo una carga comparable.