加速blog:监测和优化WordPress数据库

在WordPress生成页面时,最消耗时间的便是数据库查询了。

监测WordPress的数据库查询

WordPress内置了数据库缓存系统,安装插件WordPress Cache Inspect,它会告诉你这个系统的效率(命中效率),主要为下面四个指标:

Cold Cache Hits
This is the number of cached items that were loaded from disk.
Warm Cache Hits
This is the number of cached items accessed that were already in memory
Cache Misses
This is the number of items that had to be fetched from the db as they were not in the cache.
Loaded data
This lists the type and amount of data loaded into memory from that currently stored within the cache..

define('ENABLE_CACHE', true);

把这条语句加入WordPress的配置文件wp-config.php里,WordPress便会以文本的方式缓存一些数据库查询的结果到/wp-content/cache/目录下。注意保持这个目录可写。

试试看效果再用。因为这玩意儿是用磁盘Cache保持数据库查询结果。但某些服务器上,磁盘IO比较慢,比如在dreamhost上就不推荐用这种方式。

显示所有数据库查询语句和消耗时间

在wp-config.php文件里添加define('SAVEQUERIES', true);再在footer.php文件的尾部加上一句<?php var_dump($wpdb->queries); ?> 。就可以在页面源代码的尾部找到整个页面执行过程中所提交的所有MySQL查询语句了。数组里每一项都包含一个string和一个float,string存储查询语句,float存储查询时间。

参考:查看WordPress页面执行过程中提交的SQL查询语句

比较耗时的数据库语句

WordPress执行效率问题作者作了一个测试,大家可以看一下具体有什么问题,与自己的做一个对照。我提一下我遇到过的比较慢的查询语句。

分类和tag相关的都比较消耗时间

比较消耗时间的基本上都与分类表相关的三个数据表相关。特别是我用的那个相关文章查询,基本上占总查询时间的20%(优化后)。我比较期待快速或者带Cache的相关文章的插件。

DESC wp_comments

我不知道这个语句干啥的,经常很慢,所以我把产生它的插件"subscribe comments"插件直接禁用了,反正那个插件提供的功能就没几个人用。

持续更新ing...

  • 加速blog:服务器端的中转和缓存 前面已经提到了浏览器端的缓存,通过适当的Header可以建议和命令浏览器缓存页面内容比如javascript, css, 图片等。这里的服务器端的缓存又是什么意思...
  • 加速blog:HTTP Header 本文隶属加速blog系列 HTTP请求和相应Header 一个经典的HTTP连接是,读者通过浏览器(下称为浏览器端),向服务器(下称为服务器端)申请浏览某网页...
  • 加速blog:减少和优化插件 尽量少用含javascript和css的插件 很多插件作者需要为blog的慢速度负责。插件作者随意地往'wp_head'里安插js和css,导致很多blog的head部分越来越臃肿。 ...
  • 加速blog:速度检测 本文隶属加速blog系列 既然我们要谈加速blog,第一重要的是给blog的速度一个量化的评价。 Firefox的fasterfox插件会在Firefox的右下角给出每个网页的载...
  • 加速blog:设置浏览器缓存 在用户浏览blog的不同页面时,很多内容是重复的,比如相同的javascript,css,背景图片等。如果我们能够建议甚至强制浏览器在本地缓存这些文件,将...
  • 动态修改Excel数据表的数据来源 Excel有一个很有用的功能是直接导入外部数据库或者使用外部数据源建立数据透视表和数据透视图。但比较可惜的是,这个数据源的查询语句是静态的...
  • 加速blog:分析页面内容 用FTP更新WordPress的可能有体会,如果是打包上传的话,速度很快,但如果解压后一个文件一个文件上传的话,可能就要好几分钟。 下载也是如此,不...
  • 搞定乱码,WordPress搬家到dreamhost 两个月前一时冲动,花了大约80大洋买了一年的dreamhost主机。刚买的时候就试图把Blog搬到它上面去,不过由于数据库的乱码原因,一直没有成功。最近...
  • 加速blog:处理页面图片 作为文章的或者功能性的或者美学意义上的需求,现在blog越来越丰富多彩,图片也越来越多。 选择合适的图片尺寸 现在数码相机越来越好,动辄800...
  • 加速blog:序 这是一个介绍如何提速blog的系列文章,特别是基于WordPress的blog。通过这些方法,你我完全能做到一个飞速的blog,至少要比与你同服务器上的其它blog要...
  • At 2009.12.04 00:03, code said:

    好东西 分享了

    (Required)
    (Required, not published)

      B | I | U | D | 添加链接 | 插入引用 | 插入代码 | 插入表情 | | + | ?
    guest | 注册 | BBS | 管理 | English | 繁體 | https

    阅微堂

    zhiqiang's personal blog
    Loading...
    Loading...
    Loading...