这场被社区称为“性能门”的事件,是 WordPress 近年来在核心更新中遭遇的最大技术挑战之一。它并非单一 Bug 引发的问题,而是核心底层逻辑调整与特定服务器环境、插件生态之间产生“连锁反应”的结果。
下面对这一事件进行完整复盘。
内容
一、问题根源:性能暴跌是如何发生的?
导致大量站点性能骤降的原因主要集中在两个核心问题:WP_Query 元数据查询逻辑变化以及资源扫描机制效率问题。
1. 数据库查询循环(N+1 问题)
在 6.9 初始版本中,核心团队为了提升缓存效率,对 WP_Query 的元数据检索机制进行了重构。
然而,在多分类查询或复杂自定义字段(Meta Query)场景下,这一优化意外触发了大量重复数据库请求。
原本可以通过一次查询获取的数据,被拆分成大量独立查询,从而形成典型的 N+1 查询问题。
结果就是:
- 数据库查询次数激增
- 页面生成时间明显变慢
- 高流量网站数据库压力急剧上升
在 WooCommerce、电商类网站或内容结构复杂的站点中,这一问题尤为明显。
2. 正则表达式导致 CPU 占用飙升
另一个关键问题来自新引入的 资源预加载(Resource Hinting)机制。
WordPress 6.9 在核心中增加了一段用于扫描页面 HTML 并自动添加 prefetch / preload 的逻辑,该逻辑依赖一个复杂的正则表达式。
在处理以下页面时:
- 长文章页面
- 含大量短代码的页面
- 页面构建器生成的复杂 HTML
该正则表达式会触发 灾难性回溯(Catastrophic Backtracking),从而导致服务器 CPU 瞬间飙升至 100%。
许多站长因此出现:
- PHP-FPM 占满 CPU
- 网站响应时间暴涨
- 服务器负载异常
3. 与对象缓存插件的冲突
对于使用 Redis、Memcached 或 W3 Total Cache 的高性能网站,问题更加明显。
WordPress 6.9 修改了 缓存键(Cache Key)生成逻辑,导致:
- 原有缓存全部失效
- 新缓存尚未建立
- 所有请求直接访问数据库
这种情况形成了典型的 缓存雪崩(Cache Stampede),数据库瞬间承受巨大压力。
二、WordPress 6.9.4 是否解决了问题?
答案是:是的,6.9.4 已基本彻底修复核心性能问题。
官方通过多个版本逐步修复并优化相关逻辑。
1. 修复资源扫描瓶颈
在 6.9.1 与 6.9.2 中,开发团队重写了资源扫描机制,放弃了高复杂度正则匹配,改用更加轻量的字符串解析方式。
这一改动直接解决了 CPU 100% 的问题。
2. 优化元数据加载机制
在 6.9.3 中,团队进一步完善了 元数据懒加载机制(Lazy Loading)。
数据库只会在真正需要时才执行查询,大幅减少不必要的 SQL 请求,整体响应速度恢复到 接近 WordPress 6.8 的水平。
3. 改善对象缓存兼容性
WordPress 6.9.3 同时修复了缓存键兼容问题,并针对主流对象缓存插件(如 Redis Object Cache)进行了适配。
升级后:
- Redis / Memcached 缓存可以正常工作
- 数据库压力显著降低
- 页面响应速度恢复正常
根据社区反馈,大多数站点在升级后 加载时间已经恢复到 0.4 秒左右,CPU 异常占用问题也基本消失。
三、事件时间线回顾
2025 年 12 月初 — WordPress 6.9 发布
官方以“性能优化”为主要亮点发布该版本,但上线不到 24 小时,支持论坛便出现大量 “Site Down” 与 “CPU 100%” 的反馈。
问题排查阶段
核心团队很快发现问题主要集中在:
- 高性能服务器环境
- WooCommerce 电商网站
- 大量 Meta Query 的站点
6.9.1 与 6.9.2 紧急修复
官方在两周内连续发布补丁版本,优先解决 CPU 锁定问题,但部分数据库查询性能问题仍然存在。
2026 年初 — WordPress 6.9.3 发布
经过更充分的测试后,核心团队完成数据库查询逻辑优化,性能问题基本彻底解决。
社区反思阶段
这次事件也促使 WordPress 社区重新评估核心测试流程,尤其是针对:
- 高流量网站
- 复杂数据库查询
- 电商平台环境
进行更严格的压力测试。
四、升级建议
如果你目前仍在使用 WordPress 6.8.x 或 6.9 的早期版本,建议尽快升级到 6.9.4 或更高版本。
升级前建议执行以下操作:
1、更新核心插件
确保以下插件升级到最新版本:
- Elementor
- WooCommerce
- 其他数据库相关插件
这些插件通常也会针对 WordPress 新版本进行兼容优化。
2、清理缓存
升级完成后,建议手动清空所有缓存,包括:
这样可以避免旧缓存干扰新版本逻辑。
