Quinta y última entrega de la serie PostgreSQL desde cero a pro. Tiempo de lectura estimado: 14 minutos. Último tramo. En las entregas anteriores has aprendido a instalar PostgreSQL (I), diseñar esquemas serios (II), escribir consultas avanzadas (III) y diagnosticar rendimiento (IV). Ahora toca lo que separa un PostgreSQL "que funciona" de uno con el que tu jefe puede dormir tranquilo: replicación, backups, monitorización y HA. No voy a cubrir absolutamente todo. Voy a dar la columna vertebral, suficiente para que puedas llevar a producción un clúster pequeño-mediano y saber qué buscar cuando necesites escalar. WAL: lo que hay que...
Cuarta entrega de la serie PostgreSQL desde cero a pro. Tiempo de lectura estimado: 13 minutos. Tienes un esquema decente (II) y sabes escribir consultas potentes (III). En algún momento, algo irá lento. Este post es sobre cómo averiguar por qué y qué hacer al respecto. Tres ideas guían todo lo que sigue: Mide antes de optimizar. EXPLAIN ANALYZE es tu única fuente de verdad. Los índices aceleran lecturas y ralentizan escrituras. No los añadas por reflejo. PostgreSQL es autogestionado pero no mágico. ANALYZE y VACUUM son las dos palabras más importantes. Tipos de índices PostgreSQL ofrece varios tipos de...
Tercera y última entrega de la serie Git avanzado — y cierre del recorrido completo que empezó con Git básico y pasó por Git intermedio. Tiempo de lectura estimado: 5 minutos. Para cerrar la serie, tres comandos que la mayoría de desarrolladores no tocan hasta que los necesitan, pero que cuando llega el momento resuelven problemas que no tienen otra buena solución. git worktree para tener varias ramas checked out simultáneamente, git submodule para incluir otros repos dentro del tuyo, y git sparse-checkout para trabajar con monorepos sin descargar el mundo entero. git worktree: varias ramas a la vez El...
Tercera entrega de la serie PostgreSQL desde cero a pro. Tiempo de lectura estimado: 13 minutos. Ya sabes instalar PostgreSQL (I) y diseñar un buen esquema con tipos y restricciones (II). Ahora toca la parte divertida: las partes del lenguaje SQL que separan a alguien que "sabe SQL" de alguien que de verdad saca partido a PostgreSQL. Si ya tienes algo de experiencia, partes de este post te sonarán del post PostgreSQL: 10 consultas que todo desarrollador debería conocer. Lo que hago aquí es sistematizar y ampliar. CTEs (Common Table Expressions) Una CTE es una subquery con nombre. La sintaxis...
Segunda entrega de la serie Git avanzado. La anterior fue sobre reescribir la historia con rebase, cherry-pick y amend. Tiempo de lectura estimado: 5 minutos. La parte menos glamurosa pero más salvavidas de git: los comandos para investigar. No los escribes a diario, pero el día que los necesitas, te ahorran horas. Tres: git bisect para cazar el commit que introdujo un bug, git blame para saber quién escribió qué línea y cuándo, y git reflog para recuperar lo que parecía perdido para siempre. git bisect: búsqueda binaria de bugs El escenario: ayer funcionaba, hoy no. Entre ayer y hoy...