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

近年来,InnoDB表现出了更好的性能和更可靠的性能。使用InnoDB而不是MyISAM的一个重要原因是缺少完整的表级锁定。这使您的查询处理得更快。

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

你用的是MyISAM还是InnoDB?

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

第1步

登录到phpMyAdmin并点击进入mySQL数据库。

第2步

快速扫描或排序“Type”列,您可以看到您的表正在使用哪些存储引擎类型。在下面的示例中,您可以看到其中两个表仍在使用MyISAM。
在这里插入图片描述
或者,您可以运行一个查询来查看是否存在任何myISAM表。将“database”替换为数据库名称。

SELECT TABLE_NAME,
 ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' and ENGINE = 'myISAM'
  • 1
  • 2
  • 3
  • 4

使用phpMyAdmin将MyISAM转换为InnoDB

您可以很容易地将MyISAM转换为InnoDB。下面的示例使用wpu comments表。只需运行ALTER命令将其转换为InnoDB存储引擎。注意:我们总是建议在对MySQL数据库执行任何操作之前备份它。

ALTER TABLE wp_comments ENGINE=InnoDB;
  • 1

确保您运行的是MySQL
5.6.4或更高版本,否则,您可能会遇到InnoDB尚不支持全文索引的问题。如果你是Kinsta的客户,你不需要担心这个。

或者,也可以使用phpMyAdmin手动转换它们。只需单击myISAM表,单击“操作”选项卡,然后更改存储引擎。
在这里插入图片描述
译者附录:
使用InnoDB切记在服务器关机前关闭MySQL服务,否则会造成数据丢失。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/174389.html

(0)
上一篇 2021年10月3日
下一篇 2021年10月3日

相关推荐

发表回复

登录后才能评论