我在mysql数据库中有100个表,并且都有存储引擎:MyISAM . 我想立即将他们的存储引擎更改为innoDB,我不想使用:
1.PHP(How to convert all tables from MyISAM into InnoDB?
-
Laravel(Laravel & InnoDB)
-
一次一张 table . (how to change storage engine of database in phpmyadmin?)
-
SQL查询 . (How to change table storage engine from MyISAM to InnoDB)
-
by xampp或类似的方式 . (How to set the default storage engine to InnoDB in XAMPP)
所以我想改变: ALL TABLE STORAGE ENGINE AT ONCE 和 using phpmyadmin 接口 .
有帮助吗?
2 回答
两步就足够了吗?
(1)对
information_schema
运行SELECT
,如其中一些链接所示 . 但它输出100个完整形成的ALTER
语句 .(2)将100行复制并粘贴到phpadmin中 . 去喝杯咖啡 . 或者花点时间阅读gotchas in converting,看看你是否会遇到一些问题 .
真正并行执行它们不太可能更快 - 您将受到I / O限制 . 小 table 将快速完成,无论如何都要让大 table 延长时间 .
输出样本:
产生类似的东西:
然后粘贴然后生成许多行返回到工具中 . 无需手动输入名称 .
如果您首先转换100个表,则在再次运行查询时将不会包括它们 . 只包括新的25 .
不,您不能“自动”将任何新表更改为其他引擎 . 然而...
通过在
my.cnf
中这样说,你可以拥有你没有明确指定ENGINE
的所有新表是InnoDB:我在https://github.com/phpmyadmin/phpmyadmin/issues/12893打开了一个关于此的功能请求