Bienvenidos sean a este post, hoy veremos como trabaja esta palabra reservada con los tipos vistos en el post anterior.
Al igual que sucedia con RANGE y LIST esta palabra nos modifica a los tipo HASH y KEY de la siguiente manera:
- LINEAR HASH
- LINEAR KEY
Trabaja de una forma muy similar a sus pares HASH y KEY pero con un algoritmo mas complicado para seleccionar las nuevas filas a las particiones destinos, si bien la formula linear es menos eficiente para las operaciones normales de las bases de datos tales como leer y escribir filas pero si hace algunas operaciones administrativas mucho mas rapida, por ejemplo si tenemos problemas de performance, con la creacion, eliminacion, division o union usar a LINEAR puede ser una solucion.
Las particiones principales pueden ser divididas en multiples subparticiones, solo un nivel de subparticionamiento es soportado lo cual significa que las subparticiones no se pueden dividir mas, cada particion debe tener la misma cantidad de subparticiones, una tabla con subparticiones puede ser solo particionada con RANGE o LIST y el subparticionado con HASH o KEY, tambien se permiten a COLUMNS y LINEAR, usar cualquier otra combinacion de tipos producira un error semejante a este:
ERROR 1500 (HY000): It is only possible to mix RANGE/LIST partitioning with HASH/KEY partitioning for subpartitioning
Veamos un codigo de ejemplo para crear una tabla subparticionada:
CREATE TABLE article (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
date DATE NOT NULL,
author VARCHAR(100),
language TINYINT UNSIGNED,
text TEXT,
PRIMARY KEY (id, date)
)
ENGINE = InnoDB
PARTITION BY RANGE COLUMNS (date)
SUBPARTITION BY LINEAR HASH (id) (
PARTITION p0 VALUES LESS THAN ('2000-01-01') (
SUBPARTITION s0,
SUBPARTITION s1
),
PARTITION p1 VALUES LESS THAN ('2020-01-01') (
SUBPARTITION s2,
SUBPARTITION s3
)
);
Observen que cada subparticion debe tener un nombre unico dentro de la tabla, a su vez estas subparticiones pueden ser almacenado en otro path, pero esto lo veremos cuando hablemos de archivos fisicos de particiones, por ultimo tambien se puede usar una sintaxis concisa si no necesitamos especificar nombre o paths para subparticiones, veamos un ejemplo:
…
PARTITION BY RANGE COLUMNS (date)
SUBPARTITION BY LINEAR KEY (id)
SUBPARTITIONS 2 (
PARTITION p0 VALUES LESS THAN ('2000-01-01'),
PARTITION p1 VALUES LESS THAN ('2020-01-01')
);
Para este caso la expresion de subparticionamiento debe ser explicitamente especificada, la clave primaria es usada de manera predeterminada para las particiones KEY pero no para las subparticiones.
En resumen, hoy hemos visto a la palabra LINEAR para los tipos HASH y KEY, para que sirven y como se usan, despues vimos como son las subparticiones y como estas son creadas por medio de LINEAR, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
