Skip to content

终于知道wordpress越来越慢的原因(一)

最近服务器速度越来越慢,有时候服务器负载经常到达十几甚至看到过二十。博客打开的速度也慢了起来,今天花时间研究看看到底什么网站、什么数据库查询引起的问题。

首先在服务器端对mysql设置了慢速sql日志输出,详细的设置方法见:mysql慢速(slow log)脚本分析

使用mysql自带的慢速日志查询工具对日志进行分析,按照最多查询记录排序,发现如下sql是查询出记录最多的,这条语句居然查出来9946条记录,俄地个乖乖,不慢才怪:

Count: 18  Time=4294967294.94s (-1s)  Lock=0.00s (0s)  Rows=552.6 (9946), 2users@localhost
SELECT post_title, DAYOFMONTH(post_date) as dom FROM wp_posts WHERE YEAR(post_date) = 'S'
AND MONTH(post_date) = 'S' AND post_date < 'S' AND post_type = 'S' AND post_status = 'S'

这个是mysqldumpslow出来的统计排列第一的结果。然后进入日志查找具体的sql语句发现:

use abc;
SELECT post_title, DAYOFMONTH(post_date) as dom FROM wp_posts
WHERE YEAR(post_date) = '2008' AND MONTH(post_date) = '10'
AND post_date < '2008-10-05 13:09:33' AND post_type = 'post'
AND post_status = 'publish';

这样的类似语句很多,变化的都是时间,看了这个马上就明白这条语句不就是wordpress存档查询么!去看了一下wordpress,侧边栏输出了所有存档(archive)链接,我猜测就是因为存档链接的输出引起的这些sql查询。马上回到后台,关闭了所有的存档输出,再检测一段时间的mysql,发现这样的语句消失了!

终于找到了原因了,服务器负载有所降低,看来以后wordpress不能输出存档链接了!其实还有一个办法就是静态化日志链接也可以解决这个问题,我的做法是直接静态化了首页,即使首页输出了存档链接也不会引起查询。这样做也能降低一部分mysql查询。

http://www.pkphp.com/(2)WordPress (1)wordpress 慢(63)Wordpress 负载(18)wordpress 发布日志慢(1)ajax tree 越来越慢(1)wordpress php 慢(1)wordpress 越来越慢(3)PHP 慢(1)wordpress慢(4)wordpress越來越慢(1)wordpress打开慢(4)wordpress降低sql链接(1)wordpress 记录 数据库 慢(1)wordpress 打开 慢(2)

Share in Google Reader Share in Google Reader 分享到 FriendFeed 分享到 FriendFeed 推荐到豆瓣 推荐到豆瓣 分享到 Twitter 分享到 Twitter

One Comment

  1. 这些应该是由wp_get_archives这个语句造成的。
    如果你的wp支持object cache,你可以给这部分内容设置缓存的。

    Posted on 06-Oct-08 at 8:52 am | Permalink

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*