PostgreSQL
La base de datos relacional open-source más avanzada del mundo.
PostgreSQL es una base de datos SQL probada en batalla, totalmente compatible con ACID, con soporte nativo para JSONB, búsqueda full-text, índices geoespaciales y un enorme ecosistema de extensiones. Pier despliega la imagen Docker oficial con backups automáticos, restauración point-in-time y réplicas en un clic.
Desplegar con Pier
- 1 Abre el panel de Pier y haz clic en Add service.
- 2 Elige PostgreSQL en la lista de plantillas.
- 3 Elige la versión, asigna un nombre al servicio y Pier provisionará automáticamente el contenedor, el almacenamiento y los puertos.
- 4 Vincula un dominio si quieres HTTPS. Traefik genera el certificado de Let's Encrypt automáticamente.
¿Qué es PostgreSQL?
PostgreSQL (“Postgres”) es una base de datos objeto-relacional open-source que lleva más de 30 años en desarrollo activo. Es la elección por defecto para nuevos backends de aplicaciones en todas las industrias — desde startups unipersonales hasta Apple, Instagram, Reddit y la mayor parte del sector bancario europeo.
Lo que lo distingue de MySQL y otras bases de datos “fáciles” es la profundidad de su sistema de tipos, planificador de consultas y modelo de extensiones. JSONB le permite actuar como una base de datos documental. PostGIS lo convierte en un servidor geoespacial. pgvector lo convierte en motor de búsqueda vectorial. TimescaleDB añade series temporales. Rara vez se “supera” Postgres — se crece encima de él con extensiones.
Cómo lo despliega Pier
Pier usa la imagen Docker oficial postgres, montando /var/lib/postgresql
como volumen de datos. La versión por defecto es latest (actualmente
PostgreSQL 18); también están disponibles 18-alpine, 17-alpine y 16-alpine.
Para despliegues de un solo nodo, Pier provisiona una contraseña fuerte, crea el contenedor, expone el puerto 5432 internamente y (opcionalmente) publica vía Traefik. Para despliegues en clúster, Pier cambia a la imagen bitnami/postgresql que soporta replicación por streaming out-of-the-box — 1 primary + N réplicas de lectura, configurable de 2 a 5 nodos en total.
Los backups corren en un horario (por base de datos o cluster-wide) usando
formato custom de pg_dump. Los backups pueden subirse a cualquier
almacenamiento compatible con S3 configurado en los S3 Storages de Pier.
Cuándo NO usar PostgreSQL
Para aplicaciones embebidas, mono-proceso, SQLite es más simple y ligero. Para cargas puramente key-value sin relaciones y objetivos de latencia sub- milisegundo, Redis o Valkey encajan mejor. Para OLAP a escala de petabytes sin requisitos transaccionales, ClickHouse gana en throughput puro.
Para casi todo lo demás — Postgres.
Características clave
ACID completo y MVCC
Aislamiento serializable real, foreign keys, triggers, procedimientos almacenados (plpgsql, Python, JS, Rust). Concurrencia multi-versión sin locks de lectura.
Sistema de tipos rico
JSONB nativo con índices y operadores, arrays, ranges, UUID, tipos geométricos, tipos personalizados, enums. JSONB es lo bastante rápido como para que Postgres a menudo reemplace bases de datos documentales.
Replicación por streaming y WAL
Réplicas físicas síncronas o asíncronas, replicación lógica para migraciones cross-version y CDC, restauración point-in-time vía archivado de WAL.
Rendimiento a cualquier escala
Planificador basado en costes con scans paralelos, índices BRIN para tablas de mil millones de filas, particionado por range/list/hash, índices parciales y de expresión.
Ecosistema de extensiones
PostGIS (geoespacial), TimescaleDB (series temporales), pgvector (embeddings IA), pg_partman, pg_stat_statements, pg_repack, foreign data wrappers — Postgres es una base de datos en la que creces.
Listo para clúster en Pier
1 primary + N réplicas de lectura con replicación por streaming vía la imagen bitnami/postgresql. Pier gestiona healthchecks y enrutamiento de conexiones.
Casos de uso
Backend de aplicaciones SaaS
La elección por defecto para nuevos backends. Funciona con Prisma, Sequelize, SQLAlchemy, Hibernate, GORM, ActiveRecord, Diesel — todos los ORMs principales.
Datos multi-tenant con row-level security
Políticas nativas de seguridad a nivel de fila imponen aislamiento de tenants en la base de datos, no en la aplicación — multi-tenancy a prueba de fugas.
Cargas geoespaciales (con PostGIS)
Mapas, routing, geofencing, seguimiento de flotas — PostGIS añade 1000+ funciones espaciales, índices R-tree, proyecciones y topología.
IA / búsqueda vectorial (con pgvector)
Almacena y consulta embeddings de 1536 dimensiones con índices HNSW o IVFFlat. Sáltate la DB vectorial dedicada si Postgres ya tiene tus otros datos.
Origen de analítica y BI
Conecta Metabase, Superset, Grafana, Tableau directamente. Vistas materializadas y particionado manejan cientos de millones de filas cómodamente.
Ejemplos de código
CREATE TABLE users (
id BIGSERIAL PRIMARY KEY,
email TEXT UNIQUE NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
profile JSONB NOT NULL DEFAULT '{}'::jsonb
);
CREATE INDEX users_created_idx ON users (created_at DESC);
CREATE INDEX users_profile_gin ON users USING gin (profile); SELECT id, email
FROM users
WHERE profile @> '{"plan": "pro"}'
AND (profile->>'signups')::int > 5
ORDER BY created_at DESC
LIMIT 50; ALTER TABLE invoices ENABLE ROW LEVEL SECURITY;
CREATE POLICY tenant_isolation
ON invoices
FOR ALL
USING (tenant_id = current_setting('app.tenant_id')::uuid);
-- Por petición:
SET app.tenant_id = '550e8400-e29b-41d4-a716-446655440000'; CREATE TABLE events (
id BIGSERIAL,
occurred_at TIMESTAMPTZ NOT NULL,
payload JSONB
) PARTITION BY RANGE (occurred_at);
CREATE TABLE events_2026_05 PARTITION OF events
FOR VALUES FROM ('2026-05-01') TO ('2026-06-01'); Comparativa
| vs MySQL / MariaDB | MySQL es más simple y sigue siendo rápido en lo básico, pero Postgres gana en JSON, búsqueda full-text, geoespacial, índices parciales, CTEs y conformidad con el estándar SQL. Elige Postgres para cualquier cosa no trivial. |
| vs MongoDB | El JSONB de Postgres iguala la flexibilidad de Mongo manteniendo joins, transacciones y SQL. La mayoría de equipos que eligieron Mongo por "flexibilidad de esquema" acabaron migrando de vuelta. |
| vs SQLite | SQLite es imbatible para uso embebido y apps de un solo escritor. Postgres toma el relevo cuando necesitas escrituras concurrentes, acceso por red o replicación. |
| vs Postgres gestionado (RDS, Cloud SQL, Supabase) | Autohospedar en Pier te da el mismo Postgres a una fracción del coste — ahorros típicos 10–30× para cargas pequeñas/medianas. Renuncias a la UI SaaS pero ganas control y portabilidad. |
Preguntas frecuentes
¿Qué versión de PostgreSQL despliega Pier por defecto?
¿Los backups son automáticos?
¿Puedo correr réplicas?
¿Cómo añado extensiones como PostGIS o pgvector?
¿Soporta row-level security?
¿Qué puertos están expuestos?
¿Mi ORM existente (Prisma, Sequelize, Diesel) puede conectar?
Servicios relacionados
Desplegar en tu VPS
PostgreSQL es una base de datos SQL probada en batalla, totalmente compatible con ACID, con soporte nativo para JSONB, búsqueda full-text, índices geoespaciales y un enorme ecosistema de extensiones. Pier despliega la imagen Docker oficial con backups automáticos, restauración point-in-time y réplicas en un clic.
Desplegar este servicio →