Partición de tablas

Diseño de bases de datos

Lis Sulmont

Curriculum Manager

¿Por qué hacer una partición?

Las tablas crecen (cientos de GB/TB)

Problema: las consultas/actualizaciones se vuelven más lentas.

Porque, por ejemplo, los índices no caben en la memoria.

Solución: dividir la tabla en partes más pequeñas (= partición).

Imagen de archivos por fecha

Diseño de bases de datos

Actualización sobre modelado de datos

 

1. Modelo conceptual de datos

2. Modelo lógico de datos

Para la partición, el modelo de datos lógico es el mismo.

3. Modelo de datos físicos

La partición forma parte del modelo físico de datos.

Diseño de bases de datos

Partición vertical

Partición vertical

Dividir la tabla incluso cuando está totalmente normalizada

Diseño de bases de datos

Partición vertical: un ejemplo

Ejemplo de partición vertical

Por ejemplo, almacenar long_description en un medio más lento.

Diseño de bases de datos

Partición horizontal

Partición horizontal

Diseño de bases de datos

Partición horizontal: un ejemplo

Partición horizontal: tabla de ejemplo

Diseño de bases de datos

Partición horizontal: un ejemplo

 

Partición horizontal: ejemplo

 

CREATE TABLE sales (
    ...
    timestamp DATE NOT NULL
)
PARTITION BY RANGE (timestamp);

CREATE TABLE sales_2019_q1 PARTITION OF sales FOR VALUES FROM ('2019-01-01') TO ('2019-03-31'); ... CREATE TABLE sales_2019_q4 PARTITION OF sales FOR VALUES FROM ('2019-10-01') TO ('2020-01-31');
CREATE INDEX ON sales ('timestamp');
Diseño de bases de datos

Ventajas y desventajas de la partición horizontal

Pros

  • Los índices de las particiones muy utilizadas caben en la memoria.
  • Pasar a un medio específico: más lento frente a más rápido
  • Se utiliza tanto para OLAP como para OLTP.

Contras

  • Particionar una tabla existente puede ser una tarea complicada.
  • No se pueden establecer ciertas restricciones.
Diseño de bases de datos

Relación con el fragmentado

Fragmentación

Diseño de bases de datos

¡Vamos a practicar!

Diseño de bases de datos

Preparing Video For Download...