Pregunta que todavía aparece de vez en cuando en hilos antiguos por aquí: ¿sigue teniendo sentido usar MyISAM en un proyecto nuevo en 2026, o InnoDB gana siempre?
Para prácticamente cualquier proyecto nuevo, InnoDB, sin dudarlo, y de hecho es el motor por defecto en MySQL desde hace muchas versiones. Soporta transacciones (COMMIT/ROLLBACK), claves foráneas de verdad (MyISAM las ignora silenciosamente), bloqueo a nivel de fila en vez de tabla completa (mucho mejor para concurrencia con muchos usuarios escribiendo a la vez), y recuperación automática ante caídas gracias a su log de transacciones.
MyISAM ya casi no tiene argumentos a favor hoy en día. Los únicos casos donde alguna vez se menciona son búsquedas de texto completo muy específicas (aunque InnoDB soporta FULLTEXT desde MySQL 5.6, así que ese argumento también ha perdido fuerza) y tablas de solo lectura donde el bloqueo a nivel de tabla nunca es un problema porque nadie escribe. Fuera de esos casos muy concretos, MyISAM en un proyecto nuevo suele ser más una herencia histórica (código o tutoriales antiguos que lo usaban por defecto) que una decisión consciente.
Si os encontráis con una tabla MyISAM en un proyecto que mantenéis, migrarla es tan sencillo como:
ALTER TABLE nombre_tabla ENGINE = InnoDB;
¿Alguien sigue teniendo MyISAM en producción por alguna razón de peso, o es ya prácticamente arqueología?
Angel Carrero
Confirmo y añado un argumento más a favor de InnoDB que suele quedar fuera de estas comparativas: la recuperación ante caídas. InnoDB mantiene un redo log y un doublewrite buffer que le permiten recuperarse de forma consistente tras un corte de luz o un crash a mitad de una escritura. MyISAM no tiene nada parecido: si el servidor se cae en mitad de una escritura, lo más probable es acabar con una tabla corrupta que necesita REPAIR TABLE a mano, y en el peor caso, datos perdidos sin más.
También afecta directamente a los backups: mysqldump --single-transaction hace un volcado consistente de tablas InnoDB sin bloquear las escrituras mientras dura el backup, porque se apoya en el mecanismo de transacciones (MVCC). Con MyISAM, ese flag no sirve de nada, hace falta bloquear las tablas durante todo el backup, lo cual en una base de datos con tráfico real significa parar escrituras mientras dura el volcado.
David Carrero