Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

ALTER TABLE ADD COLUMN demora muito


Sua ALTER TABLE A instrução implica que o mysql terá que reescrever cada linha da tabela, incluindo a nova coluna. Como você tem mais de 2 milhões de linhas, eu definitivamente esperaria que demore um tempo significativo, durante o qual seu servidor provavelmente estará principalmente vinculado a E/S. Normalmente, você acharia mais eficiente fazer o seguinte:
CREATE TABLE main_table_new LIKE main_table;
ALTER TABLE main_table_new ADD COLUMN location VARCHAR(256);
INSERT INTO main_table_new SELECT *, NULL FROM main_table;
RENAME TABLE main_table TO main_table_old, main_table_new TO main_table;
DROP TABLE main_table_old;

Dessa forma, você adiciona a coluna na tabela vazia e basicamente grava os dados nessa nova tabela que você tem certeza de que ninguém mais verá sem bloquear tantos recursos.