Просто сделайте ALTER TABLE foo ENGINE=InnoDB;
Но это делает это "на месте".Если вы хотите новую таблицу в другой базе данных:
CREATE TABLE db2.foo LIKE db1.foo;
ALTER TABLE db2.foo ENGINE=InnoDB; -- and possibly other changes, see blog below
INSERT INTO db2.foo
SELECT * FROM db1.foo; -- copy data over
SELECT COUNT(*) FROM db1.foo;
SELECT COUNT(*) FROM db2.foo; -- compare exact number of rows
Количество строк - Если вы используете SHOW TABLE STATUS
, чтобы увидеть это, имейте в виду, что MyISAM предоставляет точное количество строк, но InnoDBтолько приближает число.Используйте SELECT COUNT(*) FROM foo
, чтобы получить точное количество строк.
Здесь, позвольте мне выбить паутину из моего старого блога при переходе от MyISAM к InnoDB: http://mysql.rjweb.org/doc.php/myisam2innodb