sql >> Base de Datos >  >> RDS >> Mysql

¿Qué es el particionamiento MYSQL?

La idea detrás del particionamiento no es usar múltiples servidores sino usar múltiples tablas en lugar de una tabla. Puede dividir una tabla en muchas tablas para que pueda tener datos antiguos en una subtabla y datos nuevos en otra tabla. Luego, la base de datos puede optimizar las consultas en las que solicita nuevos datos sabiendo que están en la segunda tabla. Además, usted define cómo se dividen los datos.

Ejemplo simple de la documentación de MySQL :

CREATE TABLE employees (
    id INT NOT NULL,
    fname VARCHAR(30),
    lname VARCHAR(30),
    hired DATE NOT NULL DEFAULT '1970-01-01',
    separated DATE NOT NULL DEFAULT '9999-12-31',
    job_code INT,
    store_id INT
)
PARTITION BY RANGE ( YEAR(separated) ) (
    PARTITION p0 VALUES LESS THAN (1991),
    PARTITION p1 VALUES LESS THAN (1996),
    PARTITION p2 VALUES LESS THAN (2001),
    PARTITION p3 VALUES LESS THAN MAXVALUE
);

Esto permite acelerar, por ejemplo:

  1. Eliminación de datos antiguos por simple:

    ALTER TABLE employees DROP PARTITION p0;
    
  2. La base de datos puede acelerar una consulta como esta:

    SELECT COUNT(*)
    FROM employees
    WHERE separated BETWEEN '2000-01-01' AND '2000-12-31'
    GROUP BY store_id;
    

Sabiendo que todos los datos se almacenan solo en la partición p2.