2009-10-16 18 views
46

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, lo que es y por qué se utiliza.¿Qué es el Particionamiento MYSQL?

  1. ¿Se utiliza principalmente para varios servidores, por lo que no arrastra hacia abajo un servidor?
  2. Por lo tanto, parte de los datos estarán en el servidor1, y parte de los datos estarán en el servidor2. Y el servidor 3 "apuntará" al servidor1 o al servidor2 ... ¿así es como funciona?
  3. ¿Por qué la documentación de MYSQL se enfoca en las particiones dentro del mismo servidor ... si el propósito es distribuirlo entre los servidores?

Respuesta

122

La idea detrás de las particiones no es utilizar varios servidores, sino utilizar varias tablas en lugar de una sola. Puede dividir una tabla en muchas tablas para que pueda tener datos antiguos en una tabla secundaria 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, define cómo se particionan los datos.

ejemplo simple de the MySQL Documentation:

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. Dejar caer los datos antiguos por simple:

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

    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.

+2

# 2 se llama "poda" – longneck

+17

Esta es la mejor explicación sobre el particionamiento en Internet. –

Cuestiones relacionadas