Estoy tratando de mover una mesa que contenga miles de millones de filas a un nuevo directorio en MySQL 5.6. Estoy tratando de copiar la Tabla1 a la Tabla 2 y allí al lanzar la Tabla1 y luego renombrar la Tabla 2 a la Tabla1.
CREATE TABLE `table2` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`col1` int(11) DEFAULT NULL,
`col2` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_col1_col2` (`col1`,`col2`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 DATA DIRECTORY='/mysql_data/';
Estoy usando el siguiente procedimiento para hacer la copia.
DROP PROCEDURE IF EXISTS copytables;
CREATE PROCEDURE `copytables`()
begin
DECLARE v_id INT(11) unsigned default 0;
declare maxid int(11) unsigned default 0;
select max(id) into maxid from table1;
while v_id < maxid do
insert into table2(col1,col2)
select fbpost_id,fbuser_id from table1 where id >= v_id and id <v_id+100000 ;
set v_id=v_id+100000;
select v_id;
select max(id) into maxid from table1;
select maxid;
end while;
end;
Pero ahora estoy obteniendo brechas en la columna ID después de cada lote de 100000 en la Tabla2 (después de la ID 199999 La siguiente identificación es 262141). La Tabla1 no contiene huecos en la columna ID.