Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

PostgreSQL — Avanzado

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • PostgreSQL

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Dirigido a profesionales con experiencia sólida en PostgreSQL que necesitan dar el salto hacia la operación y el diseño de sistemas de bases de datos en entornos de producción exigentes, este curso aborda las palancas de rendimiento y fiabilidad que marcan la diferencia entre una instancia que simplemente funciona y una que escala con garantías. A lo largo de ocho horas los participantes aprenderán a leer e interpretar planes de ejecución para detectar cuellos de botella reales, a seleccionar y combinar estrategias de indexación avanzadas, a diseñar esquemas particionados que aprovechen el pruning automático del planificador, a afinar los parámetros críticos del servidor según el perfil de carga, a automatizar el mantenimiento preventivo del almacenamiento, a construir dashboards operativos a partir de las vistas internas del sistema y a anticipar y resolver situaciones de contención y deadlock en cargas de alta concurrencia; el resultado concreto es que cada participante saldrá capaz de diagnosticar, justificar y aplicar mejoras medibles en una instancia PostgreSQL real.

  1. Interpretar el plan de ejecución de una consulta compleja con EXPLAIN ANALYZE para identificar y documentar al menos dos cuellos de botella con su propuesta de mejora justificada.
  2. Seleccionar la estrategia de indexación más adecuada para un caso de uso concreto argumentando los trade-offs de rendimiento en lectura, escritura y espacio en disco entre los tipos disponibles en PostgreSQL.
  3. Diseñar una solución de particionado de tablas por rango, lista o hash para una tabla de gran volumen y verificar que las consultas críticas aprovechan el partition pruning analizando el plan de ejecución resultante.
  4. Ajustar los parámetros clave de postgresql.conf en función de las características de memoria del sistema y el perfil de carga, justificando cada valor elegido.
  5. Construir scripts que consulten las vistas internas del sistema para detectar table bloat y dead tuples y ejecuten mantenimiento selectivo con umbrales configurables.
  6. Diseñar una solución de alta disponibilidad con Streaming Replication evaluando el impacto de synchronous_commit en la latencia y el riesgo de pérdida de datos en cada modo de failover.
  7. Construir un dashboard de métricas operativas a partir de las vistas del sistema, definiendo al menos tres indicadores de alerta temprana con sus umbrales justificados.
  8. Diagnosticar situaciones de deadlock y contención de locks en escenarios de alta concurrencia y proponer cambios de diseño transaccional o de esquema que los eliminen o mitiguen.

Bloque 1 — Diagnóstico y optimización de consultas. El punto de partida es aprender a leer lo que el planificador realmente hace: anatomía de la salida de EXPLAIN ANALYZE, interpretación de nodos de ejecución (Seq Scan, Index Scan, Hash Join, Nested Loop), identificación de estimaciones erróneas de cardinalidad y su impacto en el plan elegido, y técnicas de reescritura de consultas para guiar al optimizador hacia planes más eficientes.

Bloque 2 — Estrategias de indexación avanzada. Se examinan en profundidad los tipos de índice disponibles —B-Tree, BRIN, GIN, GiST, índices parciales e índices sobre expresiones— analizando para cada uno los patrones de acceso que favorece, el coste de mantenimiento en escritura, el espacio consumido y los casos de uso industriales donde cada opción es la elección correcta.

Bloque 3 — Particionado declarativo y pruning. Diseño e implementación de tablas particionadas por rango, lista y hash; estrategias de routing automático de filas; gestión del ciclo de vida de particiones; y verificación mediante el plan de ejecución de que el pruning elimina efectivamente los escaneos sobre particiones irrelevantes en las consultas críticas.

Bloque 4 — Ajuste de la configuración del servidor. Análisis del impacto de los parámetros de memoria (shared_buffers, work_mem, effective_cache_size), de WAL (wal_buffers, checkpoint_completion_target, max_wal_size) y del planificador en distintos perfiles de carga OLTP y OLAP, con metodología para medir el efecto de cada cambio antes de llevarlo a producción.

Bloque 5 — Mantenimiento automático y gestión del bloat. Funcionamiento interno del autovacuum, causas y consecuencias del table bloat y los dead tuples, consulta de pg_stat_user_tables para cuantificar la acumulación, y construcción de scripts PL/pgSQL o shell que ejecuten VACUUM/ANALYZE selectivo con umbrales configurables y registren el resultado.

Bloque 6 — Alta disponibilidad con Streaming Replication. Arquitectura de la replicación física en PostgreSQL, configuración del primary y los standby, modos de synchronous_commit y su efecto en la durabilidad y la latencia, monitorización con pg_stat_replication, y diseño de los procedimientos de failover y switchover anticipando cada escenario de pérdida de datos.

Bloque 7 — Observabilidad y gestión de la concurrencia. Construcción de un dashboard operativo a partir de pg_stat_activity, pg_locks, pg_stat_replication y pg_stat_bgwriter; definición de umbrales de alerta temprana para métricas clave; diagnóstico de deadlocks y situaciones de lock contention en cargas de alta escritura simultánea; y propuestas de rediseño transaccional o de esquema para eliminar o mitigar los conflictos identificados.

  • PostgreSQL 15 o superior instalado localmente o accesible en un entorno de laboratorio con permisos de superusuario.
  • Acceso a psql y, opcionalmente, a una herramienta gráfica como pgAdmin 4 o DBeaver.
  • Para el bloque de Streaming Replication: posibilidad de levantar al menos dos instancias PostgreSQL (puede ser mediante Docker Compose o máquinas virtuales).
  • Sistema operativo Linux o macOS para la ejecución de scripts shell; en Windows se requiere WSL2.
  • Editor de código con soporte para SQL y PL/pgSQL (VS Code con la extensión SQLTools es suficiente).
  • Conjuntos de datos de prueba de volumen representativo (mínimo 10 millones de filas) para los ejercicios de particionado e indexación; se proporcionarán scripts de carga en los materiales del curso.
  • Escritura y depuración de consultas SQL de complejidad media-alta: joins múltiples, subconsultas, funciones de ventana y CTEs.
  • Conocimiento de los tipos de datos nativos de PostgreSQL y el modelo MVCC a nivel conceptual.
  • Experiencia con la administración básica de una instancia PostgreSQL: creación de bases de datos, roles, esquemas y tablas, gestión de permisos y ejecución de copias de seguridad con pg_dump.
  • Familiaridad con la línea de comandos Linux/Unix y con el cliente psql.
  • Se recomienda haber completado el curso POS02 o contar con experiencia equivalente demostrable en entornos de producción.