Qual é o caminho mais rápido para otimizar uma tabela MySQL?

1

Eu executei muitas consultas DELETE diferentes em muitas tabelas no banco de dados enorme (centenas de milhões de registros). O que seria mais rápido - para executar OPTIMIZE TABLE em cada tabela modificada. Ou apenas para mysqldump no arquivo e depois restaurar de volta do arquivo?

Pense que isso será igual. Apenas mysqldump | o mysql será mais rápido;)

    
por archer 27.02.2010 / 05:50

1 resposta

4

OPTIMISE TABLE será mais rápido, pois os dados não precisarão ser convertidos para um formato textual usado por mysqldump e, em seguida, digeridos pelo cliente de linha de comando mysql .

Se você está usando InnoDB , você pode fazer outro truque,

ALTER TABLE $table ENGINE innodb;

Isso reconstruirá a tabela copiando todas as linhas para um novo espaço de tabela e substituindo a tabela atual depois de concluído. No entanto, enquanto isso está acontecendo, a tabela original não irá bloquear os leitores. Os escritores, obviamente, serão impedidos de atualizar até que a operação seja concluída.

    
por 27.02.2010 / 08:47