Diseño de bases de datos
Lis Sulmont
Curriculum Manager
{{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).

**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.
{{2}}Dividir la tabla incluso cuando está totalmente normalizada
Por ejemplo, almacenar long_description en un medio más lento.


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');
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