监测WordPress的数据库查询
WordPress内置了数据库缓存系统,安装插件WordPress Cache Inspect,它会告诉你这个系统的效率(命中效率),主要为下面四个指标:
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…
WordPress消耗时间最多的便是数据库的查询,所以缓存是一个比较好的解决方案。WordPress强大的’hook’机制,使得可以为之建立强大的缓存机制,从缓存数据库结果到完全静态化,都可以实现。
define(’ENABLE_CACHE’, true);
把这条语句加入WordPress的配置文件wp-config.php里,WordPress便会以文本的方式缓存一些数据库查询的结果到/wp-content/cache/目录下。注意保持这个目录可写。
使用WP-Cache 2.0
这是WordPress比较官方的缓存插件。
完全静态化
使用cos-html-cache,可以为blog的主页和文章页面建立真正的静态页面,也就是说访问者看到的就是静态页面,连php的调用都省了,所以加速效果无限好(达到你的服务器的极限)。不过缺点也是显然的,无法显示动态和个性化内容…
cos-html-cache的作者给过一张示意图,演示WP-Cache和cos-html-cache的原理,很直观的看出它们节约了哪一部分的时间。

Super Cache
这个是最近炒得比较火的一个插件,号称是WP-Cache 2.0的改进版。但我看了一下它的说明,似乎没有可取之处。比如它为了把留言者的个人信息显示在留言栏,就不直接给曾经留言过的用户静态版本了。但其实用javascript读取COOKIE信息很容易实现。
Leave a Reply
You must be logged in to post a comment.