Un tip rápido: si notas que al importar dumps de bases de datos que utilizan InnoDB la carga es mucho más lenta que en bases de datos con MyISAM, puedes mejorar bastante la velocidad de carga con algunas opciones de mysqldump
:
- En primer lugar, está la opción
--opt
, que habilita una serie de alternativas que hacen que la importación sea bastante rápida… - … pero si por alguna razón debes utilizar alguna opción no predeterminada al crear el dump (en mi caso, era
--skip-extended-insert
), puedes utilizar--no-autocommit
, que hace que la importación sea tan rápida como utilizando MyISAM
¿La explicación?
Como InnoDB es transaccional, lleva un registro de cada operación.
Con la primera alternativa, sólo se ejecuta un INSERT
por tabla, por lo que no necesita realizar muchas operaciones de registro.
Con la segunda alternativa, a pesar que se indican muchos INSERT
, sólo se confirman los cambios una vez por tabla ya que los bloques de INSERT
van rodeados con set autocommit=0;
y un único COMMIT
al final.
3 responses
[…] cierto, si tus tablas son de tipo InnoDB, recuerda también usar la opcion –no-autocommit para mejorar la velocidad de importación del dump […]
[…] post Mejorar la velocidad de carga de dumps de MySQL con InnoDB appeared first on […]
[…] Puedes utilizar el siguiente comando para generar un “dump” que es más amigable con un sistema de control de versiones (aunque esto quizás no sea la mejor de las ideas) y más rápido de importar: […]