Cómo cambiar el motor de base de datos a InnoDB

Cómo migrar de MyISAM a InnoDB con PhpMyadmin

Cuando estás gestionando una base de datos lo más normal es que lo hagas con tu herramienta favorita. Es fácil saber cómo cambiar una base de datos a InnoDB en PhpMyadmin, pero por si tienes la duda te la despejo.

En algunos casos toca echar mano de alguna utilidad a la que no estás acostumbrado, y es posible que si usas algún software independiente para gestionar bases de datos no seas un pr0 con PhpMyadmin.

A mí me pasa algo parecido, y por si te estás viendo forzado a utilizarlo te dejo aquí estos sencillos pasos.

Cómo cambiar el motor de tus base de datos a InnoDB con PhpMyadmin

Bueno, realmente no tienes que cambiar el motor de la base de datos, sino de las tablas que te interese. Esto hace que dependiendo del objetivo de estas puedan convivir tablas InnoDB y MyISAM dentro de una sola ddbb.

Si has estado intentando crear claves foráneas, puede que este problema te haya terminado llevando a la conclusión de cambiar el motor de alguna tabla, pero eso lo explicaré en otro artículo. Te puedo decir que es la solución correcta.

Para cambiar una tabla MyISAM a InnoDB basta con abrir PhpMyadmin. Ahora selecciona la tabla dentro de la base de datos que quieras cambiar.

seleccionar-tabla-phpmyadmin

Lo siguiente será darle a la pestaña que indica Operaciones  (u operations si lo tienes en inglés).

phpmyadmin-operaciones-tabla

Verás que ahora te salen todos los detalles de la tabla que tienes abierta, y uno de ellos es el motor de almacenamiento de la tabla. Haz click sobre el desplegable, elige InnoDB y luego dale a ok.

Léete también  Qué es Ansible y por qué deberías empezar a usarlo si administras servidores

cambiar-myisam-innodb-phpmyadmin

OJO! Si tu tabla contiene muchos registros puede tardar bastante tiempo en completar la operación. En tablas con medio millón o más puede tardar varios minutos.

El proceso que realiza no es tan simple como cambiar un valor en la tabla, sino que todo el contenido de esta tabla es volcado a otra tabla temporal idéntica, pero con InnoDB. Luego se elimina la tabla original y se renombra la tabla temporal para que coincida con el que había.

Por supuesto todo esto se hace automáticamente, y podrías hacerlo también ejecutando este comando sql:

En ambos casos puede tardar un rato por lo del volcado de datos y demás, por lo que te recomiendo hacerlo desde el principio (como los índices o las claves foráneas), siempre que puedas.

¿Te ha dado algún problema la conversión? ¿Cuánto te ha tardado? Comenta y comparte


AYUDANOS a poder seguir dando respuestas. Te podemos echar una mano y tú también a nosotros, símplemente dale a me gusta.