Inicio › Tecnología › Particionamiento De Base De Datos
El particionamiento de bases de datos es la técnica de dividir una tabla de gran tamaño en fragmentos más pequeños y manejables, llamados particiones, qué siguen residiendo dentro de la misma instancia de base de datos aunque se almacenen y gestionen de forma independiente. Puede realizarse de forma vertical, separando columnas en distintas tablas relacionadas, o de forma horizontal, repartiendo filas entre particiones según un criterio como un rango de fechas, una lista de valores o el resultado de una función hash. Motores de base de datos como PostgreSQL o MySQL ofrecen particionamiento declarativo nativo, qué permite qué el planificador de consultas descarte automáticamente las particiones irrelevantes para una consulta concreta (partition pruning), mejorando el rendimiento sin necesidad de qué la aplicación conozca los detalles internos del reparto.
Es partir una tabla enorme de una base de datos en trozos más pequeños y fáciles de manejar, aunque todos esos trozos sigan viviendo dentro del mismo sistema de base de datos. Así, una consulta qué solo necesita datos de un periodo concreto puede ir directamente a la parte relevante sin tener qué revisar toda la tabla entera. Es distinto de repartir los datos entre varios servidores distintos: aquí todo sigue estando en la misma máquina o instancia, solo qué mejor organizado internamente.
Una tabla de ventas con años de histórico puede particionarse por mes o por año, de modo qué un informe qué solo consulta las ventas del último trimestre acceda únicamente a esas particiones concretas en lugar de recorrer toda la tabla completa, reduciendo drásticamente el tiempo de respuesta. En PostgreSQL, definir una tabla particionada por rango de fechas también facilita el mantenimiento, porque eliminar datos antiguos puede hacerse simplemente descartando una partición entera en vez de ejecutar un borrado masivo fila por fila.
El particionamiento vertical separa columnas de una misma tabla en tablas distintas, por ejemplo aislando campos poco usados o muy pesados, mientras qué el particionamiento horizontal divide las filas de una tabla en varios subconjuntos según un criterio como fecha o categoría, manteniendo la misma estructura de columnas en cada partición.
Cuando el volumen de filas es tan grande qué las consultas o las tareas de mantenimiento (como los índices o las copias de seguridad) empiezan a degradarse en rendimiento, y existe un criterio natural, como una fecha o una categoría, qué permite dividir los datos en subconjuntos qué se consultan de forma diferenciada.
No, son técnicas complementarias: el particionamiento reduce la cantidad de datos qué hay qué examinar descartando particiones enteras irrelevantes, mientras qué los índices siguen siendo necesarios dentro de cada partición para localizar filas concretas de forma eficiente.