El particonamiento de tabla en las bases de datos es una técnica para dividir en segmentos lógicos las tablas de datos para que al momento de hacer búsquedas estas se puedan realizar sobre grupos mas pequeños de datos.
Existen 4 formas de implementar las particiones en MySQL, las cuales son:
- By key
- By range
- By Hash
- By List
Caso A: Tabla sin llave
Este es el caso más sencillo, para lo cual vamos a crear una tabla sencilla- create table casoa(
- clave int,
- nombre char(20),
- edad int)
- engine=innodb;
- Alter table casoa partition by range(edad)(
- Partition s1 less than(18) ,
- Partition s2 less than(50)
- );
Caso B: Tabla con llave
Vamos a crear una nueva tabla sencilla, solo que ahora vamos a definir un campo llave- create table casob(
- clave int,
- nombre char(20),
- edad int,
- Primary key(clave))
- engine=innodb;
- Alter table casob partition by range(edad)(
- Partition s1 less than(18) ,
- Partition s2 less than(50)
- );
Como la tabla tiene llave debemos crear el particionamiento empleando la llave primaria
- Alter table casob partition by key(clave) partitions 4;
Caso C: Tabla con superllave
Ahora veamos que ocurra cuando una tabla emplea una superllave, la cual como sabemos es cuando dos campos en conjunto forman la llave primaria- create table casoc(
- clave int,
- nombre char(20),
- edad int,
- Primary key(clave, edad))
- engine=innodb;
- Alter table casob partition by range(edad)(
- Partition s1 less than(18) ,
- Partition s2 less than(50)
- );
Caso D: Tabla con llave foranea
Ahora veamos que ocurra cuando una tabla emplea una superllave, la cual como sabemos es cuando dos campos en conjunto forman la llave primaria, primero vamos a crear una tabla con llave primaria- create table casow(
- clave int,
- nombre char(20),
- edad int,
- Primary key(clave))
- engine=innodb;
- create table relacionw(
- folio int,
- clave int,
- nombre text,
- primary key(folio),
- foreing key(clave) references casow(clave))
- engine=innodb;
- Alter table relacionw partition by key(folio) partition 4;
Desafortunadamente lo unico que hay por hacer es eliminar la relación foreign key de la tabla relacion pero dejar el campo como un indice normal para que se mantenga la bsuqueda y relación rapida entre las tablas.
Para concluir los dejamos con los videos donde mostramos estos casos:
Quedamos a la espera de sus comentarios
