concepto · intermedio · 2 min de lectura
Particionamiento de Bases de Datos
El particionamiento divide una tabla grande en fragmentos más chicos y manejables, mejorando el rendimiento de consultas y la administración de datos.
No requiere conocimientos previos.
Alcance en breve
Cubre
- Particionamiento as a concept
No cubre
- implementation details
Supone
- The reader understands relevant fundamentals.
Resumen
El particionamiento divide una tabla lógica en múltiples fragmentos físicos —particiones— basados en un criterio: rango de fechas, lista de valores, hash de una clave. Cada partición puede almacenarse en distintos discos, tablespaces o incluso servidores.
Hay dos variantes principales:
- Particionamiento horizontal: divide filas entre particiones. Una tabla de ventas particionada por mes: enero en una partición, febrero en otra.
- Particionamiento vertical: divide columnas entre particiones. Columnas frecuentemente accedidas en una partición, columnas raramente usadas en otra.
A diferencia del sharding —que distribuye datos entre distintos servidores—, el particionamiento opera dentro de una misma base de datos. Es transparente para la aplicación: la query sigue dirigiéndose a la tabla lógica y el motor redirige a la partición correcta —partition pruning—.
Alcance y supuestos
Cubre particionamiento horizontal y vertical, y su diferencia con sharding. Asume familiaridad con bases de datos relacionales.
Modelo mental
Un archivo de facturas organizado en carpetas por año y mes. Cuando buscás una factura de marzo 2025, no revisás todas las carpetas: vas directo a 2025/03. El particionamiento es ese sistema de carpetas.
Uso práctico
- ✅ Tablas grandes con queries que siempre filtran por la clave de partición.
- ❌ Queries que cruzan muchas particiones: el beneficio desaparece.
Ejemplo trabajado: particionar ventas por mes
Una tabla sales con 500 millones de filas se particiona por sale_date. SELECT * FROM sales WHERE sale_date = '2026-03-15' toca solo la partición de marzo 2026 —0.2% de los datos— en vez de escanear 500 millones de filas.
Evidencia
- PostgreSQL soporta particionamiento por rango, lista y hash desde la versión 10.
Fuentes citadas
- Wikipedia, Database index (Síntesis, 21-07-2026)