MySQL存储引擎 – 如何将MyISAM转换为InnoDB

MySQL存储引擎 – 如何将MyISAM转换为InnoDB

大型WordPress网站速度变慢的最大原因之一是它们的数据库尚未优化。许多较旧的站点仍在其数据库中使用MyISAM存储引擎。近年来,InnoDB表现得更好,更可靠。在MyISAM上使用InnoDB的一个重要原因是缺乏完整的表级锁定。这使您的查询处理速度更快。

InnoDB与MyISAM

以下是InnoDB和MyISAM之间的一些主要区别:

    • InnoDB具有行级锁定。MyISAM只有完整的表级锁定。
    • InnoDB具有所谓的参照完整性,它涉及支持外键(RDBMS) 和关系约束,而MyISAM没有 (DMBS)。
    • InnoDB支持事务,这意味着您可以提交和回滚。MyISAM没有。
    • InnoDB更可靠,因为它使用事务日志进行自动恢复。MyISAM没有。

您使用的是MyISAM还是InnoDB?

如果您在一个相当新的WordPress站点上运行,您很可能已经在使用InnoDB MySQL存储引擎。但是对于较旧的WordPress网站,您可能需要快速检查一下。一些站点甚至可能混合并匹配了MyISAM和InnoDB表,您可以通过将它们全部转换来看到改进。请按照以下这些简单的步骤进行检查。

第1步

登录到phpMyAdmin并单击进入您的mySQL数据库。

第2步

快速扫描或对“Type”列进行排序,您就可以看到您的表正在使用哪些存储引擎类型。在下面的这个示例中,您可以看到其中两个表仍在使用MyISAM。

查找MyISAM表

查找MyISAM表

或者,您可以运行查询以查看是否存在任何myISAM表。将“database”替换为您的数据库名称。

SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE 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

将MyISAM转换为InnoDB

使用WP-CLI将MyISAM转换为InnoDB

WP-CLI是一个命令行工具,供开发人员管理WordPress安装的常见任务(并不常见)。查看这篇关于如何使用WP-CLI将MyISAM转换为InnoDB的文章。

评论留言