关于wordpress博客网站加载速度,用户一直颇有微词。知名自媒体站长卢松松博客上有一篇《我为什么放弃WordPress》就道出了不少人的心声。网友们提出了各种改善方法,比如禁用Google字体、尽量少用插件、使用缓存插件、使用CDN、减小网页/图片/css/js体积、减少草稿等等,这在我开始使用wordpress的9年前就注意到了,并不新鲜,而且我现在一直使用国内无与伦比的阿里云服务器,带宽是没问题的,CDN没必要用,就算单个图片体积2M以上也是秒开。然而,近来我放在阿里云上的manjaro.cn网站(wordpress做的)前后台都变得奇慢无比,以前2秒钟就可以打开页面,现在竟然需要30秒钟。于是开始了以下N道排查工作:
- 禁用插件【先后禁用又开启,没见网站速度提升】;
- 看wp-config.php里的写法是否有误【没发现问题】;
- 看主题目录下的functions.php里的新添加内容是否有影响【没发现问题】;
- 尝试下载普通zip文件看速度是否还是那样慢【答案:非常快】;
- 看lulinux.com/wp-admin这个后台的打开速度如何【答案:非常快】;
- 检测.htaccess文件权限是否导致wp-super-cache缓存出错【答案:没问题】;
- 检查数据库发现wp_options表体积比lulinux.com的多出100倍,非常吓人!按照豆瓣上某网友提出清理transient数据的方法处理之,搞定!
简单几步实现定时清理数据:
因为这个wp_options表的transient数据一直在增加,所以需要定时清理,步骤如下【以navicat为管理数据库工具】:
1,开启mysql的事件计划功能:在my.ini或my.cnf里添加event_scheduler = ON
语句即可,不添加这句话的话,以后mysql服务一旦重启,事件计划就会失效。
2,重启服务器的mysql服务。
3,在navicat的事件定义界面输入相应的命令,然后设置“状态”为ENABLE,“ON COMPLETION”为PPRSERVE,如下图所示:
4,在“计划”标签页里设置定时选项,如下图所示:
5,最后点击保存。