Eu tenho uma tabela com 1,6 milhões de linhas.
Então eu adiciono um campo nessa tabela.
Estou usando hostgator como hospedagem. Você sabe, eles têm uma CPU de 16 núcleos.
Resultado: 1. O phpmyadmin não funciona por 10 minutos 2. Após o banco de dados voltar a ficar online, o campo que desejo adicionar NÃO foi adicionado. 3. Felizmente, não recebo uma ligação do hostgator reclamando.
Eu não me importo, é lento. Eu sei que é lento. São 1,6 milhão de linhas. Eu só quero fazer isso uma vez.
Isso é porque eu uso o mecanismo innodb?
O comando é simples:
Alter table tablebusiness add column `Prominent` int(10) NOT NULL
Eu recebi este erro:
#2013 - Conexão perdida com o servidor MySQL durante a consulta
Não preciso que esta operação seja executada rapidamente
Eu preciso que ele seja executado uma vez.
Suponho que posso copiar a tabela para outro lugar e, em seguida, mudar a tabela antiga para a nova tabela, mas o innodb está em cascata e não sei como fazer isso.
Outra atualização: Hostgator está chateado. Não posso culpá-los. Devo ter usado uma grande potência da CPU.
Parece-me que existe uma maneira adequada de modificar uma tabela. Talvez desligar o banco de dados primeiro no modo de manutenção ou algo assim. Talvez criando uma cópia da tabela primeiro.
ALTER
em uma mesa tão grande pode ser lento, independentementeEngine_type
Siga este método para evitar tempo de inatividade e operação mais rápida:
Escravo de configuração
Pare a replicação.
Faça ALTER no escravo
Deixe o escravo alcançar o mestre
Você também pode consultar esta postagem do blog MySQL Performance:
http://www.mysqlperformanceblog.com/2008/03/27/using-mmm-to-alter-huge-tables/