5

我不想主观地问“哪个 DBMS 最好?” 或“这两者中哪个 DBMS 更好?”。这不一定是狂热的辩论。

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

我知道 WordPress 不使用 InnoDB,因此在 MySQL 中禁用 InnoDB 可以加快速度。另一方面,Percona 是 MySQL 的一个分支,它用 XtraDB 代替了 InnoDB,并且还声称高效、高性能。

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

我已经尝试在 Google 上进行一般搜索,但没有遇到过智能讨论,更不用说性能基准测试了。

如果这里有任何专家可以分享他们的经验,将不胜感激。非常感谢!

并且请保留任何自鸣得意、讽刺的评论,比如“你为什么不试试”。如果可以的话,我会的。Stack Overflow 的目的是分享专业知识并相互学习,而不是自己做所有事情。

4

2 回答 2

6

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

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

  • 您应该使用缓存插件,这样您就可以避免大量的数据库读取请求
  • 您应该避免使用发出昂贵查询的插件(遗憾的是,这涵盖了大多数插件)
  • 您应该修剪您的评论(通常评论是 99+% 的垃圾邮件,所以那些被标记为垃圾邮件的评论只是坐在您的数据库中占用空间)
  • 您的主机应该有足够的 RAM 用于热数据集以适合内存

如果您真的想详细了解 MyISAM 与 InnoDB/XtraDB,可以查看以下链接:

http://www.mysqlperformanceblog.com/2009/01/12/should-you-move-from-myisam-to-innodb/ http://www.rackspace.com/knowledge_center/article/mysql-engines-myisam- vs-innodb

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

于 2013-04-10T22:36:17.077 回答
6

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_buffer_pool_size来保存所有表的数据和索引。WordPress 网站(即使是数百篇文章)的数据大小通常不是很大,因此您可能只需要几 GB 的缓冲池即可将所有频繁请求的数据保存在缓冲区中。一旦数据和索引页面填充了 InnoDB 缓冲池,99.9% 的查询将在 RAM 之外提供服务,并且该站点将具有出色的性能。

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

XtraDB 的改进旨在帮助 Threads_running 的数量增加或缓冲池变得更大(例如几十 GB)。单个 WP 站点不太可能如此频繁地使用 MySQL 或 Percona Server,以至于这些改进提供的优势不仅仅是一点点优势。除非您要像托管公司一样在给定服务器上托管数百个 WP 站点。

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

于 2013-04-10T23:02:32.507 回答