Saltar al contenido
Explorar conocimiento

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