PostgreSQL
20 min de lecturaArquitectura
Entiende cómo funciona PostgreSQL internamente
Arquitectura de PostgreSQL
PostgreSQL utiliza una arquitectura cliente-servidor con un modelo de procesos.
#
Componentes principales
sql
1┌─────────────────────────────────┐2│ PostgreSQL │3│ ┌───────────────────────────┐ │4│ │ Shared Memory │ │5│ │ ┌─────┐ ┌─────┐ ┌────┐ │ │6│ │ │Shared│ │WAL │ │CLOG│ │ │7│ │ │Buffer│ │Buffer│ │ │ │ │8│ │ └─────┘ └─────┘ └────┘ │ │9│ └───────────────────────────┘ │10│ ┌───────────────────────────┐ │11│ │ Background Processes │ │12│ │ ┌────┐ ┌────┐ ┌────────┐│ │13│ │ │WAL │ │Auto│ │Check- ││ │14│ │ │Writer│ │Vaccum│ │pointer││ │15│ │ └────┘ └────┘ └────────┘│ │16│ └───────────────────────────┘ │17└─────────────────────────────────┘#
Ciclo de vida de una consulta
1. Parser: Analiza sintaxis SQL 2. Analyzer: Valida semántica y permisos 3. Rewriter: Optimiza reglas y vistas 4. Planner: Genera plan de ejecución 5. Executor: Ejecuta el plan 6. Writer: Escribe resultados
#
Archivos importantes
Sintaxis
Sintaxis
sql
1-- Ver configuración actual2SHOW ALL;3 4-- Ver procesos activos5SELECT * FROM pg_stat_activity;6 7-- Ver tamaño de base de datos8SELECT pg_size_pretty(pg_database_size('mi_bd'));Ejemplos
Monitorear actividad
Consultar procesos activos en PostgreSQL
Ejemplo
sql
1SELECT pid, usename, application_name, state, query2FROM pg_stat_activity3WHERE state != 'idle'4ORDER BY query_start DESC;Resultado:
| pid | usename | application_name | state | query | |------|----------|-----------------|--------|----------------------------------| | 1234 | postgres | psql | active | SELECT * FROM pg_stat_activity | | 1235 | ana | DataGrip | active | SELECT * FROM usuarios |