Como derrubar uma tabela de 8 GB do InnoDB sem bloqueios globais

5

Versão do MySQL: 5.1.63.

Estou prestes a DROP uma tabela InnoDB maior de ~ 8 GB. Na semana passada eu derrubei uma mesa quatro vezes maior em outra máquina e uma trava global chutou e nos derrubou por ~ 90 segundos. Eu suspeito que tem a ver com table_cache bloquear Alguém com informações sobre como tornar este DROP mais suave? DELETE em pequenos lotes primeiro, depois TRUNCATE e finalmente um DROP TABLE ? Obviamente, gostaria de manter este banco de dados em produção, se possível. Eu também estive considerando tornar o buffer pool menor antes da queda.

Adoraria ouvir sua opinião.

    
por Ztyx 02.12.2013 / 16:14

1 resposta

4

DROP TABLE sempre precisa de alguns bloqueios globais. Eu faria exatamente o que você descreveu em sua pergunta: exclua linhas tão rapidamente quanto for seguro (não atrapalhe muito o IO do disco e vários caches, tenha cuidado com a replicação também) e, em seguida, descarte-o.

    
por 12.01.2014 / 10:36

Tags