WordPress(MyISAM)数据库速度慢,我应该切换到InnoDB吗?

时间:2011-02-24 作者:Adam Heath

我有一个WordPress网站,有超过10000篇帖子,每当我添加和编辑帖子时,事情开始变得非常缓慢。对于用户来说,页面加载速度很快,还有帖子的管理列表,但只有在发生写入或更新时,服务器才会100%使用CPU,并且需要很长时间(有时比PHP的超时时间60秒还要长)。

我认为这可能与MyISAM的表级锁定有关,并考虑将其切换到InnoDB。这样做意味着什么?

一些统计数据:

select  - per hour ~22k
update  - per hour ~7.6k
set option  - per hour ~7k
我知道我还可以进行很多其他优化,但我的感觉是这可能会产生最大的影响。

谢谢

Edit: 我发现导致速度慢的一个主要问题是YARPP(另一个相关帖子插件),它每次都会重新生成“相关性”,这似乎是由于我们有2k以上的标签。我关闭了“考虑标签”选项,速度大大加快。

此外,其他重新生成东西的插件可能会导致此类问题,例如一些XML站点地图插件。

所以,我眼前的问题已经解决了,尽管我仍然希望听到一个关于InnoDB与Wordpress的MyISAM的好答案!

2 个回复
最合适的回答,由SO网友:RolandoMySQLDBA 整理而成

我确实会切换到InnoDB。表锁定/行锁定早已被许多人讨论过。我总是选择InnoDB。然而there is another profound reason for choosing InnoDB...CACHING.

虽然大多数人吹嘘MyISAM的读取速度更快,但大多数人忘记了MyISAM的多缓存(称为密钥缓存(由key\\u buffer\\u size设置))只缓存来自的索引页。MYI文件。它从不缓存数据页。在32位系统中,它的官方最大容量为4GB。8GB是64位的最佳最大值。

InnoDB缓冲池缓存数据和索引页。根据您拥有的服务器,您最多可以在RAM中缓存整个数据集。您可以将InnoDB调整为80%的RAM和10%的DB配置,并将10%留给操作系统。This is true even for different operating systems.

I have recommended these things for Drupal customers 取得了惊人的成功。It applies to Wordpress 也一样。我用WordPress为客户提供了DB支持。同样的改进。

你可以随时configure memory for InnoDB 更有效的是,你可以更MyISAM。总有办法tweek InnoDB to suit your performance needs. 随着数据的增长,最终become a requirement.

SO网友:anu

InnoDB可能帮不了你-页/行级锁定有助于缓解争用,但这并不是你的问题。

有很多资料表明,在一般的博客场景中,MyISAM比InnoDB慢(读的比写的多得多)。

在进行切换之前,您至少应该执行以下操作

运行mysqltuner,它会给你一些配置建议(虽然它不是绝对正确的或无所不知的)

  • 打开慢速查询日志记录,让它停留一天左右,然后开始筛选日志,并解释查询,以从个人经验中了解情况,我发现,在wp\\U注释上的未索引字段中添加索引在我的特定情况下(在突发性评论期间,可能会有10多人同时尝试发表评论)有很大帮助,并且找出哪些查询运行缓慢以及为什么可能会使你更好地理解问题,并找到真正的解决方案!

  • 结束

    相关推荐

    Server database problem

    我刚刚将我的网站从共享服务器转移到VPS,但它并没有启动,当我向VPS技术支持询问时,他们给我发了一封电子邮件,我不理解:-电子邮件您的网站“www.onlinemba.co.in”已经从以前的主机迁移而来,我们现在在访问依赖于数据库的php文件时得到一个空白页面。数据库编码似乎有问题,因为所有其他php文件的访问都很好,数据库连接也没有问题。您可以通过访问网站预览URL来检查相同的内容“http://38.100.101.228/info.php“。您的Kloxo面板详细信息如下URL:XXXXX用户: