Anuncios

Bienvenidos sean a este post, hoy veremos como trabaja esta palabra reservada con los tipos vistos en el post anterior.

Anuncios

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
Anuncios
Anuncios

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.

Anuncios
Anuncios

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
Anuncios

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

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

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.

Anuncios

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.

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50

Anuncio publicitario