加速blog:监测和优化WordPress数据库
在WordPress生成页面时,最消耗时间的便是数据库查询了。
监测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...