Als MySQL-DBA vertraue ich darauf, dass MySQL die Konvertierung durchführt, indem MySQL das Skript für mich schreibt.
Führen Sie mit dem Linux-Befehl diese Abfrage aus
mysql -h... -u... -p... -A --skip-column-names -e"SELECT CONCAT('ALTER TABLE ',db,'.',tb,' ENGINE=InnoDB;') FROM (SELECT A.db,A.tb,A.tbsize FROM (SELECT table_schema db,table_name tb,(data_length+index_length) tbsize FROM information_schema.tables WHERE engine='MyISAM' AND table_schema NOT IN ('information_schema','mysql')) A LEFT JOIN (SELECT table_schema db,table_name tb FROM information_schema.statistics WHERE index_type='FULLTEXT') B USING (db,tb) WHERE B.db IS NULL) AA ORDER BY tbsize" > /root/ConvertMyISAM2InnoDB.sql
Das Skript konvertiert zuerst die kleinsten Tabellen. Dieses Skript hat auch alle MyISAM-Tabellen mit FULLTEXT-Indizes umgangen.
Nachdem Sie sich das Skript angesehen haben, können Sie es einfach wie folgt in MySQL ausführen:
mysql -h... -u... -p... -A < /root/ConvertMyISAM2InnoDB.sql
oder wenn Sie den Zeitpunkt jeder Konvertierung sehen möchten, melden Sie sich bei mysql an und führen Sie Folgendes aus:
mysql> source /root/ConvertMyISAM2InnoDB.sql
Dies sollte nicht durcheinander gebracht werden, da bei der Ausführung der Konvertierung eine vollständige Tabellensperre auftritt.
Sobald alle Tabellen konvertiert sind, müssen Sie die MySQL-Einstellungen für die InnoDB-Verwendung optimieren und den key_buffer verkleinern.
Bitte lesen Sie dies, um den InnoDB-Pufferpool festzulegen: /dba/1/what-are-the-main-differences-between-innodb-and-myisam/2194#2194
Bitte lesen Sie dies auch: /drupal/1715/what-would-the-optimal-mysql-configuration-for-a-drupal-7-site-be/2367#2367
Versuche es !!!