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.