TRUNCATE demora muito em mesas enormes 10gig+

TRUNCATE demora muito em mesas enormes 10gig+

Gostaria de saber se é uma boa ideia usar emptyo recurso do phpMyAdmin em uma mesa com ~12gb em um servidor de produção. Não quero causar muito atraso, mas preciso liberar espaço em disco.

Isso precisa ser feito em um servidor DELL com Debian:

MySQL 5.1.49 Intel Xeon X3430 @ 2,40 Ghz 4 GB de memória

Supondo que o phpMyAdmin use TRUNCATEpara esvaziar a tabela. Posso esperar vários minutos ou até horas para truncar a tabela ou é um processo bastante rápido, semelhante à eliminação de uma tabela?

Responder1

Se houverzerotransações bloqueando o esquema da tabela, o TRUNCATE TABLEcomando terminará quase instantaneamente. O máximo que esperei até agora foi 0,1 segundo para truncar uma tabela de 25 GB.

Em qualquer caso, um TRUNCATE TABLEcomando não tem efeitos colaterais indesejáveis ​​em nada além de outras operações de manutenção. Se o servidor não conseguir adquirir os bloqueios exclusivos necessários, ele irá bloquear - mas não porque exija uma grande quantidade de IO ou processamento - ele apenas aguardará sua vez.

informação relacionada