Eu sou desenvolvedor de PHP, então não seja rigoroso. Eu tenho uma grande mesa ~ despejo 5.5gb. Nosso PM decidiu criar uma nova coluna para executar um novo recurso. Tabela é InnoDB então o que eu tentei:
Altere a tabela na tela com o bloqueio da tabela. Tomou ~ 30 horas e nada. Então eu apenas parei. Primeiro cometi um erro porque não encerrei todas as transações, mas a 2ª vez não foi multitoque. O status era
copy to tmp table
.Como também preciso aplicar o particionamento para esta tabela, decidimos fazer dump, renomear e criar tabela com o mesmo nome e nova estrutura. Mas o dump está fazendo uma cópia estrita (pelo menos eu não encontrei outra coisa). Então eu adicionei para despejar uma nova coluna
sed
e consultá-la. Mas alguns erros estranhos começaram. Eu acredito que foi causado por charset. A tabela no utf-8 e o arquivo se tornaram us-ascii depoissed
. Então, eu tenho erros (comando desconhecido '\' ') em 30% dos dados. Portanto, este também é um caminho ruim.
Quais são as outras opções para conseguir isso e acelerar o desempenho (eu posso fazer isso com o script php, mas levará séculos). Qual será o desempenho INSERT SELECT
nesse caso.
Obrigado por qualquer avanço.
SET NAMES utf8
eCOLLATION
.But meh idk porque 30% dos dados corrompidos depoissed
. Eu acho que a carga em massa será a mais rápida, mas talvez exista algo mais do que estou perdendo. Obrigado, Mark