Javier Valencia Javier Valencia
PostgreSQL desde cero (IV): índices, EXPLAIN y rendimiento

PostgreSQL desde cero (IV): índices, EXPLAIN y rendimiento

10 de mayo de 2026 · 6 min de lectura · 0 visitas

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...

Leer más →
Terminal con los comandos git worktree, git submodule y git lfs

Git avanzado III: entornos y repos grandes

9 de mayo de 2026 · 4 min de lectura · 12 visitas

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...

PostgreSQL desde cero (III): CTEs, window functions y consultas avanzadas

PostgreSQL desde cero (III): CTEs, window functions y consultas avanzadas

8 de mayo de 2026 · 3 min de lectura · 10 visitas

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...

Terminal con los comandos git bisect, git blame y git log --graph

Git avanzado II: detective — bisect, blame y reflog

8 de mayo de 2026 · 4 min de lectura · 13 visitas

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...

Terminal con los comandos git rebase, git cherry-pick y git commit --amend

Git avanzado I: reescribir la historia

7 de mayo de 2026 · 5 min de lectura · 16 visitas

Primera entrega de la serie Git avanzado. Si vienes saltado desde el nivel intermedio o básico, aquí entramos en el terreno donde git deja de ser sistema de control de versiones y empieza a ser editor de historia. Tiempo de lectura estimado: 5 minutos. Los tres comandos de hoy permiten modificar commits que ya existen: combinarlos, reordenarlos, cambiarles el mensaje, sacarlos de una rama y meterlos en otra. Son potentes y razonablemente peligrosos: si la historia que estás reescribiendo ya la han visto otros, les vas a desordenar el mundo. La regla general, antes de empezar: reescribe historia local todo...