¿TRUNCATE lleva mucho tiempo en mesas enormes de 10 gigas o más?

¿TRUNCATE lleva mucho tiempo en mesas enormes de 10 gigas o más?

Me pregunto si es una buena idea utilizar emptyla función de phpMyAdmin en una mesa con ~12 GB en un servidor de producción. No quiero causar demasiado retraso, pero necesito liberar algo de espacio en el disco.

Esto debe hacerse en un servidor DELL con tecnología Debian:

MySQL 5.1.49 Intel Xeon X3430 @ 2.40Ghz 4GB de memoria

Suponiendo que phpMyAdmin usa TRUNCATEpara vaciar la tabla. ¿Puedo esperar varios minutos o incluso horas para truncar la tabla o es un proceso bastante rápido similar a eliminar una tabla?

Respuesta1

Si haycerotransacciones que bloquean el esquema de la tabla, el TRUNCATE TABLEcomando finalizará casi instantáneamente. Lo máximo que he esperado hasta ahora fue 0,1 segundos para truncar una tabla de 25 GB.

En cualquier caso, una TRUNCATE TABLEorden no tiene efectos secundarios indeseables más que en otras operaciones de mantenimiento. Si el servidor no puede adquirir los bloqueos exclusivos necesarios, se bloqueará, pero no porque requiera una gran cantidad de IO o procesamiento: simplemente está esperando su turno.

información relacionada