数据库
首页 > 数据库> > MySQL创建表与引擎覆盖

MySQL创建表与引擎覆盖

作者:互联网

我正在使用wpmudev.org的插件将具有一个数据库和81,000个表的wordpress网站分解为一个多数据库.主要的动机是性能,我检查了表格本身,它们的类型为MyISAM.

我当时在想将表移到新数据库中时,也可以将表类型更改为InnoDB,这样应该可以改善站点性能.

将表从现有数据库迁移到新数据库的脚本使用以下语法:

创建表….
INSERT INTO …. SELECT * FROM ….

如果我可以在CREATE TABLE命令中覆盖引擎,则无法找到信息,例如:

创建表….类似…. ENGINE = InnoDB

我也想知道“ INSERT INTO …. SELECT * FROM ….”是插入数据的最有效方法吗?这是一个php脚本,所以我不介意添加一些代码来改善性能-在较早的试用中,需要3天才能在4核4GB RAM上运行!

解决方法:

是的,我已经做到了这一点(覆盖表类型).工作正常.

对于像这样的大型传输,我通常会进行某种形式的数据库转储,
一个脚本来处理数据(例如更改引擎类型),然后还原到新数据库.基于文本的数据库转储大多使用COPY,它比INSERT INTO快.

您还可以发出ALTER TABLE {} ENGINE = INNODB;.尽管那说一个新的开始也有很多好处.

81,000张桌子.哇.

标签:innodb,multiple-databases,myisam,wordpress,mysql
来源: https://codeday.me/bug/20191101/1986638.html