phpmyadmin - 将存储引擎从 MyISAM 更改为 InnoDB - 一次所有表 - 使用 phpmyadmin

标签 phpmyadmin innodb myisam

我在 mysql 数据库中有大约 100 个表,所有表都有存储引擎:MyISAM。我想立即将他们的存储引擎全部更改为 innoDB,但我不想使用:

1.PHP ( How to convert all tables from MyISAM into InnoDB?

  1. Laravel( Laravel & InnoDB )

  2. 一次一个表。( how to change storage engine of database in phpmyadmin? )

  3. SQL 查询 .( How to change table storage engine from MyISAM to InnoDB )

  4. 通过 xampp 或类似方式。 ( How to set the default storage engine to InnoDB in XAMPP )

所以我想改变:ALL TABLE STORAGE ENGINE AT ONCEusing phpmyadmin interface.

有什么帮助吗?

最佳答案

2 个步骤是否足够?

(1) 针对 information_schema 运行 SELECT,如其中一些链接所示。但是让它输出 100 个完整的 ALTER 语句。

SELECT CONCAT("ALTER TABLE ", table_name, " ENGINE=InnoDB;
")
    FROM information_schema.tables
    WHERE engine='MyISAM'
      AND table_schema='MyDatabase'
      AND ...;

(2) 将这 100 行复制并粘贴到 phpadmin 中。去喝杯咖啡。或者花时间阅读 gotchas in converting看看您是否会遇到一些问题。

真正并行执行它们不太可能更快——您将受到 I/O 限制。小 table 会很快完成,大 table 无论如何都可以延长时间。

输出样本:

SELECT CONCAT("ALTER TABLE ", table_name, " ENGINE=InnoDB;
")
    FROM information_schema.tables
    WHERE engine='MyISAM'
      AND table_schema='test';

产生类似的东西:

ALTER TABLE 07 ENGINE=InnoDB;\n
ALTER TABLE 597377b ENGINE=InnoDB;\n
ALTER TABLE adjprice ENGINE=InnoDB;\n
ALTER TABLE big ENGINE=InnoDB;\n
ALTER TABLE bigv ENGINE=InnoDB;\n
ALTER TABLE blobid ENGINE=InnoDB;\n
ALTER TABLE charlatin1 ENGINE=InnoDB;\n
ALTER TABLE collorder ENGINE=InnoDB;\n
ALTER TABLE collorder2 ENGINE=InnoDB;\n
ALTER TABLE countries ENGINE=InnoDB;\n
ALTER TABLE d1 ENGINE=InnoDB;\n

然后将生成的许多行粘贴回工具中。无需手动输入名称。

如果您首先转换 100 个表,则当您再次运行查询时,它们将不会被包括在内。仅包括新的 25 个。

不,您不能“自动”将任何新表更改为不同的引擎。然而……

通过在 my.cnf 中这样说,您可以让所有未明确指定 ENGINE 的新表 成为 InnoDB:

[mysqld]
default_storage_engine = InnoDB

关于phpmyadmin - 将存储引擎从 MyISAM 更改为 InnoDB - 一次所有表 - 使用 phpmyadmin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41631724/

相关文章:

php - 如何保护 phpMyAdmin

mySQL数据库导入数据到结构

mysql - 在 PHPMyAdmin 中使用 LIMIT 时获取的行数不正确

mysql - 在 MySQL 中使用 InnoDB 进行全文搜索

具有最高 COUNT 的 MySQL GROUP BY 字段(基于 JOIN)

MySQL MyISAM 全文搜索 - 如何添加 '#' 作为 utf8 字符集的单词字符?

php - 与数据库的连接可以在本地主机上运行,​​但不能在线运行

事务中插入时 MySQL 外键约束错误

MySQL 自动增量 InnoDB 类似 MyISAM

MySQL + MyISAM 表大小问题