Qué es el particionamiento MYSQL?


He leído la documentación (http://dev.mysql.com/doc/refman/5.1/en/partitioning.html), pero me gustaría, en sus propias palabras, qué es y por qué se utiliza.

  1. ¿ Se utiliza principalmente para varios servidores para que no arrastre un servidor?
  2. Por lo tanto, parte de los datos estarán en el servidor 1, y parte de los datos estarán en el servidor 2. Y el servidor 3 "apuntará" al servidor 1 o server2...is ¿así funciona?
  3. ¿Por qué la documentación de MYSQL se centra en el particionamiento dentro del mismo servidor...si el propósito es propagarlo a través de servidores?
Author: Zed, 2009-10-16

1 answers

La idea detrás del particionamiento no es usar varios servidores, sino usar varias tablas en lugar de una tabla. Puede dividir una tabla en muchas tablas para que pueda tener datos antiguos en una tabla secundaria y datos nuevos en otra tabla. A continuación, la base de datos puede optimizar las consultas donde se piden nuevos datos sabiendo que están en la segunda tabla. Además, define cómo se particionan 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. Eliminar 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.

 144
Author: Szymon Lipiński,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-30 06:11:46