WordPress 性能优化案例:品橙旅游

2023-04-14 11:32:16 浏览数 (1)

自从提供 WordPress 性能优化收费服务以后,每周都基本会帮1-2个客户优化他的 WordPress,这周优化的的是:品橙旅游,这是一家2B的旅游咨询网站,客户说,最近每天 MySQL 都会挂掉10几次,烦不胜烦。

今天就以这家网站为例,讲讲我是怎么进行 WordPress 优化的:

数据库查询优化

经过我检测,首页有297条SQL,呵呵,虽然 MySQL 自带了缓存,但是这么多 SQL 请求,毕竟不是什么好事。

安装了 Memcached 对象缓存之后,减少到 214 条 SQL,然后初步看看剩下 SQL,很大一部分是请求一个 wp_prettyurls 这个数据表,这些查询都是 Pretty Urls 这个插件生成的,咨询客户之后,这个插件基本没怎用,于是停了这个插件。

停了 Pretty Urls 插件之后,还剩下 70 条 SQL 查询,然后在观察剩下的 SQL,原来网站使用的大前端 D8 主题大量使用了 query_posts 函数,并且没有缓存,于是直接把 query_posts 函数修改成 WP_Query 方式来调用,并且做好了缓存。

最后剩下 7 条 SQL 请求,但是还要花费 1 秒多时间,一查原来是 WP_Postviews 插件的 get_most_viewed 函数引起,这个函数使用的 SELECT 查询语句带了 DISTINCT,这个会非常慢,把 DISTINCT 去掉,立刻整个页面打开就只有 0.1 秒左右了。但是 WP_Postviews 插件还是会持续升级,还是把 get_most_viewed 结果缓存起来 10 分钟,反正最热日志,更新强度不会那么高。

最后结果:首页只剩下 6 条 SQL,页面大部分时间打开只要 0.1 秒左右。其他页面同样方法再做一遍,也达到同样效果。

0 人点赞