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