tabla - como modificar un registro en mysql
¿Cómo eliminar particiones sin perder datos en MySQL? (4)
Tengo una mesa como:
create table registrations(
id int not null auto_increment primary key,
name varchar(50),
mobile_number varchar(13))
engine=innodb
partition by range(id) (
partition p0 values less than (10000),
partition p0 values less than (20000),
partition p0 values less than max value);
No exactamente igual que arriba pero similar a eso ...
Ahora suponga que mi tabla tiene 200000 filas y ahora quiero eliminar particiones de la tabla y reorganizarlas de acuerdo con el requisito sin VALOR MÁX.
¿Puede alguien ayudarme a reorganizar la partición sin eliminar datos o eliminar tablas y recrearlas?
Puede reorganizar la partición p0
utilizando el comando ALTER TABLE .. REORGANIZE PARTITION
.
http://dev.mysql.com/doc/refman/5.5/en/partitioning-management-range-list.html
Si pretende cambiar la partición de una tabla sin perder datos, use ALTER TABLE ... REORGANIZE PARTITION
ALTER TABLE registrations
REORGANIZE PARTITION p0 INTO (
PARTITION p0 VALUES LESS THAN (10000),
PARTITION p0 VALUES LESS THAN (20000)
);
Tenga en cuenta que esto no tendrá sentido hasta que realmente cree varias particiones, por ejemplo,
ALTER TABLE registrations
REORGANIZE PARTITION p0 INTO (
PARTITION p0 VALUES LESS THAN (10000),
PARTITION p1 VALUES LESS THAN (20000),
PARTITION p2 VALUES LESS THAN MAXVALUE
);
Echa un vistazo a la partición RANGE en MySQL
Si su partición p2
es demasiado grande, puede dividirla de la misma manera.
Reorganizar particiones no requiere eliminar todas las particiones existentes. Puede especificar la nueva partición en la sintaxis de ALTER TABLE
directamente, y no se perderán datos.
ALTER TABLE registrations
PARTITION by RANGE(id) (
PARTITION p1 VALUES LESS THAN (10000),
PARTITION p2 VALUES LESS THAN (20000),
PARTITION p3 VALUES LESS THAN (30000),
PARTITION p4 VALUES LESS THAN (40000),
PARTITION p5 VALUES LESS THAN (MAXVALUE);
PS probado con MySQL 5.7.11
Si desea reorganizar los datos manteniendo las particiones,
Puede echar un vistazo a las cláusulas REORGANIZE PARTITION y COALESCE PARTITION de ALTER TABLE.
mando.
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
ALTER TABLE tbl REMOVE PARTITIONING;