A TRUNCATE demora muito tempo em tabelas enormes 10gig +

2

Gostaria de saber se é uma boa idéia usar o recurso empty do phpMyAdmin em uma tabela com ~ 12GB em um servidor de produção. Eu não quero causar muito atraso, mas preciso liberar algum espaço em disco.

Isso precisa ser feito em um servidor DELL baseado em Debian:

MySQL 5.1.49 Intel Xeon X3430 @ 2.40Ghz 4GB Memory

Supondo que o phpMyAdmin use TRUNCATE para esvaziar a tabela. Posso esperar vários minutos ou até horas para truncar a mesa ou é um processo bastante rápido, semelhante, derrubando uma mesa?

    
por bobble bubble 23.08.2018 / 15:30

1 resposta

3

Se houver transações zero bloqueando o esquema da tabela, o comando TRUNCATE TABLE será concluído quase instantaneamente. O máximo que esperei até agora foi de 0,1 segundo para truncar uma tabela de 25GB.

Em qualquer caso, o comando TRUNCATE TABLE não tem efeitos colaterais indesejáveis em nada, a não ser em outras operações de manutenção. Se o servidor for incapaz de adquirir os bloqueios exclusivos necessários, ele bloqueará - mas não porque requer uma grande quantidade de IO ou processamento - ele está apenas aguardando a sua vez.

    
por 23.08.2018 / 16:21