Partición de tablas

Diseño de bases de datos

Lis Sulmont

Curriculum Manager

¿Por qué hacer una partición?

{{1}}Las tablas crecen (cientos de GB/TB)

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

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

{{4}}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

{{3}}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

Particionamiento vertical

{{2}}Dividir la tabla incluso cuando está totalmente normalizada

Diseño de bases de datos

Partición vertical: un ejemplo

Ejemplo de particionamiento vertical

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

Diseño de bases de datos

Partición horizontal

Particionamiento horizontal

Diseño de bases de datos

Partición horizontal: un ejemplo

Horizontal partitioning: example tabla

Diseño de bases de datos

Partición horizontal: un ejemplo

Particionamiento 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

Ventajas

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

Contras

Particionar {{4}}una tabla existente puede ser una tarea complicada. No se pueden establecer ciertas {{5}}restricciones.

Diseño de bases de datos

Relación con el fragmentado

Sharding

Diseño de bases de datos

¡Practiquemos!

Diseño de bases de datos

Preparing Video For Download...