MySQL存储引擎——如何将MyISAM转换为InnoDB
大型WordPress网站速度变慢的一个最大原因是他们的数据库没有得到优化。许多较老的站点仍然在它们的数据库中使用MyISAM存储引擎。近年来,InnoDB的表现更好,也更可靠。在MyISAM上使用InnoDB的一个重要原因是缺少完整的表级锁定。这使得您的查询处理速度更快。
InnoDB和MyISAM
你用的是MyISAM还是InnoDB?
使用phpMyAdmin将MyISAM转换为InnoDB
使用WP-CLI将MyISAM转换为InnoDB
InnoDB和MyISAM
以下是InnoDB和MyISAM之间的一些主要区别:
InnoDB具有行级锁定。MyISAM只有完整的表级锁定。
InnoDB有所谓的参照完整性,它涉及支持外键(RDBMS)和关系约束,而MyISAM没有(DMBS)。
InnoDB支持事务,这意味着您可以提交和回滚。米沙姆没有。
InnoDB更可靠,因为它使用事务日志进行自动恢复。米沙姆没有。
你用的是MyISAM还是InnoDB?
如果你正在运行一个相当新的WordPress站点,你可能已经在使用InnoDB MySQL存储引擎了。但对于较老的WordPress网站,你可能需要快速检查。一些站点甚至可以混合和匹配MyISAM和InnoDB表,您可以通过转换它们来看到改进。请按照这些简单的步骤进行检查。
第一步
登录phpMyAdmin,点击进入你的mySQL数据库。
第二步
快速扫描或排序“Type”列,您可以看到您的表正在使用哪些存储引擎类型。在下面的示例中,您可以看到两个表仍在使用MyISAM。
查找MyISAM表
或者,您可以运行一个查询来查看是否存在任何myISAM表。用您的数据库名称替换“database”。
SELECT TABLE_NAME,ENGINEFROM information_schema.TABLESWHERE TABLE_SCHEMA = ‘database’ and ENGINE = ‘myISAM’
使用phpMyAdmin将MyISAM转换为InnoDB
您可以非常容易地将MyISAM转换为InnoDB。以下示例使用wp_comments表。只需运行ALTER命令将其转换为InnoDB存储引擎。注意:我们总是建议在运行任何操作之前备份MySQL数据库。
ALTER TABLE wp_comments ENGINE=InnoDB;
确保运行的是MySQL 5.6.4或更高版本,否则可能会遇到InnoDB还不支持全文索引的问题。
或者,您可以使用phpMyAdmin来手动转换它们。只需单击myISAM表,单击转到Operations选项卡,然后更改存储引擎。
将MyISAM转换为InnoDB
使用WP-CLI将MyISAM转换为InnoDB
WP-CLI是一个命令行工具,供开发人员管理WordPress安装的常见(不常见)任务。查看这篇关于如何使用WP-CLI将MyISAM转换为InnoDB的文章。