WordPress数据库性能:Percona服务器与MySQL,不含InnoDB

WordPress数据库性能:Percona服务器与MySQL,不含InnoDB,mysql,performance,wordpress,innodb,percona,Mysql,Performance,Wordpress,Innodb,Percona,我不想主观地问“哪种DBMS最好?”或“这两种DBMS中哪种更好?”。这不一定是一场粉丝辩论 相反,我欢迎任何基准测试结果或具体经验,当涉及到一个特定的标准-性能-特别是关于一个特定的应用程序:WordPress 我知道WordPress不使用InnoDB,所以在MySQL中禁用InnoDB可以加快速度。另一方面,Percona是一种MySQL fork,它用XtraDB取代InnoDB,并声称具有高效、高性能 在运行WordPress时,每一个方面的性能如何?(不需要竞争……据我所知,两者都可

我不想主观地问“哪种DBMS最好?”或“这两种DBMS中哪种更好?”。这不一定是一场粉丝辩论

相反,我欢迎任何基准测试结果或具体经验,当涉及到一个特定的标准-性能-特别是关于一个特定的应用程序:WordPress

我知道WordPress不使用InnoDB,所以在MySQL中禁用InnoDB可以加快速度。另一方面,Percona是一种MySQL fork,它用XtraDB取代InnoDB,并声称具有高效、高性能

在运行WordPress时,每一个方面的性能如何?(不需要竞争……据我所知,两者都可能看起来很好)

我曾尝试在谷歌上进行一般搜索,但没有遇到如此多的智能讨论,更不用说性能基准测试了

如果在座的任何专家能够分享他们的经验,我将不胜感激。非常感谢

请把任何自鸣得意、嘲讽的评论,比如“为什么不试试”留给自己。如果可以,我会的。堆栈溢出的目的是分享专业知识和相互学习,而不是自己做任何事情。

这个问题与其说是“MySQL vs.Percona Server”,不如说是“MyISAM vs.InnoDB/XtraDB”。它们都有各自的性能特点,哪个存储引擎适合您在很大程度上取决于您的工作负载。大多数Wordpress站点的流量都很低,而且读取量也很大,因此,只要您的数据适合缓冲池(对于InnoDB/XtraDB)或密钥缓存(对于MyISAM),我希望性能不会有太大差异

在Wordpress数据库优化方面做了大量工作之后,我可以告诉您,Wordpress站点的性能更多地取决于硬件的类别和您选择的插件

  • 您应该使用缓存插件,这样就可以避免大量的数据库读取请求
  • 您应该避免使用发出昂贵查询的插件(遗憾的是,这涵盖了大多数插件)
  • 你应该删减你的评论(通常评论是99%以上的垃圾邮件,所以那些被标记为垃圾邮件的评论只是在你的数据库中占据了空间)
  • 您的主机应该有足够的RAM,以便热数据集能够装入内存
如果您真的想详细了解MyISAM与InnoDB/XtraDB的对比,可以查看以下链接:

因此,为了给出更长的答案,您需要在生成生产流量之后分析您的MySQL实例。我知道你说过你不能,但是。。。这个问题有点像我问“什么发型最适合我”,而不包括图片。

Wordpress可以很好地使用InnoDB(或XtraDB)。我使用MyISAM、InnoDB和XtraDB中的任何一种,为大规模托管WordPress的网站提供咨询和培训

WordPress 3.5.1在不指定存储引擎的情况下创建表。因此,无论您使用的是MySQL的任何实例,它都尊重默认的存储引擎。从MySQL 5.5(约2010年12月)开始,默认的存储引擎是InnoDB。我测试了在运行MySQL 5.6.10的虚拟主机上安装WordPress,它使用InnoDB存储引擎创建了表

我没有任何基准测试可以分享,但这些基准测试的用处有限,因为性能在很大程度上取决于给定的硬件、流量负载和其他因素

像WordPress这样的CMS倾向于使用只读查询。这就是InnoDB应该带来的好处,因为它缓存数据页和索引。MyISAM只缓存索引,并依赖文件系统缓存来保存数据

因此,让WordPress运行良好的关键是分配足够的
innodb\u buffer\u pool\u size
来保存所有表的数据和索引。WordPress站点(即使包含数百篇文章的站点)的数据大小通常不是很大,因此您可能只需要几GB的缓冲池就可以在缓冲区中保存所有频繁请求的数据。一旦数据页和索引页填充了InnoDB缓冲池,99.9%的查询将由RAM提供,该站点将有很好的性能

与任何缓存系统一样,性能的真正杀手是当“热”数据大于缓存时,迫使查询产生磁盘I/O。单个磁盘I/O相当于数千次RAM访问,因此您希望尽可能完全使用RAM提供内容

XtraDB中的改进旨在随着运行的线程数量增加或缓冲池变大(例如几十GB)而有所帮助。单个WP站点不太可能对MySQL或Percona服务器进行如此大规模的操作,以至于这些改进带来的不仅仅是一点优势。除非你打算像一家托管公司一样在一台给定的服务器上托管数百个WP站点


你甚至可能会发现,瓶颈不再是数据库,然后你需要专注于前端优化。

据我在不同的Post os percona中读到的,有一些人在AMAZON AC2服务器上使用percona而不是标准的mysql获得了更好的数据库性能。我认为XTradb是一个可选的安装,可以选择替代innodb。percona服务器本身添加了一些性能监控功能,以便您可以调整服务器本身。在这里,作者说他使用percona的性能更好,但他没有说他使用了什么db引擎: