大型网站发展缓慢的最大原因之一是他们的数据库没有得到优化。许多较老的站点仍在其数据库中使用MyISAM存储引擎。近年来,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”替换为数据库名称。
使用phpMyAdmin将MyISAM转换为InnoDB
您可以很容易地将MyISAM转换为InnoDB。下面的示例使用wp\u comments表。只需运行ALTER命令将其转换为InnoDB存储引擎。注意:我们总是建议在对MySQL数据库执行任何操作之前备份它。
确保您运行的是MySQL
5.6.4或更高版本,否则,您可能会遇到InnoDB尚不支持全文索引的问题。如果你是Kinsta的客户,你不需要担心这个。
或者,也可以使用phpMyAdmin手动转换它们。只需单击myISAM表,单击“操作”选项卡,然后更改存储引擎。
译者附录:
使用InnoDB切记在服务器关机前关闭MySQL服务,否则会造成数据丢失。