2009-02-02 14 views
6

Tengo una base de datos llena de datos sensibles al tiempo, por lo que diariamente trunco ​​la tabla y luego importo los datos nuevos (de una combinación de otras bases de datos) a la tabla truncada.cuándo utilizar OPTIMIZE en mysql

Actualmente estoy ejecutando OPTIMIZE en la tabla después de haber importado la actualización diaria de datos. Sin embargo, mirando la página de sintaxis MySQL OPTIMIZAR http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

Dice que puedo optimizar para recuperar el espacio no utilizado y desfragmentar los datos.

¿Debo ejecutar OPTIMIZE dos veces? Una vez cuando borro los datos, y luego otra vez después de haberlos reinsertado? o solo una vez? y si solo una vez, ¿debería ser después de cargar los datos nuevos? o después de borrar el viejo?

Respuesta

5

puede depender de si está utilizando tablas MyISAM o InnoDB, pero ejecutaría OPTIMIZE después de truncar la tabla. Esto debería garantizar que se recupere espacio y se ejecutará muy rápidamente.

Cuando inserta su lote de datos, todo debe insertarse en orden y no fragmentarse de todos modos, y dado que es un inserto nuevo, no habrá espacio para reclamar. Si se trata de un conjunto de datos pequeño, puede que no importe demasiado, pero en un conjunto de datos grande, OPTIMIZAR después de la inserción también puede ser bastante lento.

+0

que tenía sentido para mí, pero no fue positivo. Gracias – pedalpete

0

Solo una vez está bien, después de haber importado los datos nuevos.

0

Después de eliminar o actualizar un conjunto de datos en su base de datos, puede usar el comando optimizar tabla para eliminar el espacio des-fragmentado.

no hay necesidad de utilizar el comando optimizar dos veces.Después de todo el proceso DML puede utilizar el comando optimizar.