Aproximadamente quanto tempo deve um “ALTER TABLE” assumir uma tabela INNODB de 1.3GB?

1

Estou tentando otimizar uma tabela que não foi otimizada em muito tempo. Tem cerca de 2,5 milhões de linhas com 1,3 GB de dados e um índice de 152 MB. Comecei a otimizar há cerca de 15 minutos e não tenho ideia de quanto tempo levará.

O servidor é razoavelmente robusto (quad xeon com 4GB de RAM) e tem um tamanho de buffer de innodb de 500MB.

Devo esperar que isso leve minutos, horas ou dias?

    
por user32381 10.04.2010 / 00:22

3 respostas

1

Depende muito de qual é o status dos dados na tabela e do seu hardware, mas um limite superior típico nas operações innodb alter table é o tempo necessário para copiar a tabela inteira + o tempo necessário para classificar o índice.

Você se certificou de que não está ficando sem espaço em disco?

    
por 10.04.2010 / 00:55
1

A resposta, aparentemente, foi de 1 hora e 20 minutos. Não tenho certeza se é um momento "normal" ou se foi atrasado por alguma ineficiência na minha configuração.

    
por 10.04.2010 / 01:55
1

Ainda não sei por que, mas às vezes essas operações levam horas. Eu testemunhei uma corrida de 2 horas e ouvi sobre uma de 8 horas de duração. Para alterar uma tabela, o MySQL não tem apenas que copiá-lo para um novo, mas também para re-indexá-lo. É onde geralmente passa a maior parte do tempo. Se você verificar PROCESSLIST, provavelmente dirá que está criando índice ou índice de classificação.

Não é normal, mas acontece, infelizmente.

    
por 11.04.2010 / 00:01

Tags