AWS环境下Plesk搭配MariaDB 10.5运行WordPress TTFB过高问题求助
问题排查结论与解决方案
核心诱因判断
你提供的4组对照测试已经控制了实例、环境框架变量,仅MariaDB版本变更时TTFB出现明显波动,可以确定性能问题和MariaDB 10.5直接相关,但不是版本本身的性能缺陷,是默认配置与WordPress的适配冲突导致。
Plesk MariaDB版本随机的原因
Plesk安装时无版本选择入口是官方设计逻辑:安装程序会根据你选择的操作系统版本、Plesk镜像的更新批次、安装源分支(稳定/测试)自动匹配官方推荐的稳定版MariaDB,旧批次AWS镜像默认绑定5.5版本,新批次镜像会默认搭载10.4/10.5版本。
为什么纯MySQL基准测试无差异,但wp-login.php TTFB偏高
纯MySQL基准测试仅验证通用读写性能,而wp-login.php的请求会触发WordPress会话验证、用户元数据关联查询、钩子函数执行等特定逻辑,和10.5的默认配置存在冲突,常见冲突点如下:
- MariaDB 10.3及以上版本默认开启
optimizer_switch的rowid_filter优化规则,WordPress wp_usermeta、wp_options这类元表的联合查询会被优化器判定执行错误的执行计划,实际查询耗时是老版本的3~5倍,你可以修改MariaDB配置文件添加如下参数后重启验证:optimizer_switch = 'rowid_filter=off' - Plesk打包的MariaDB 10.5默认关闭查询缓存,5.5版本默认开启查询缓存,wp-login.php涉及大量重复的站点配置查询,无缓存时每次请求都要扫表,可添加如下配置开启查询缓存:
query_cache_type = ON query_cache_size = 64M
其他可能的诱因
- 排序规则不匹配:MariaDB 10.5默认排序规则为
utf8mb4_unicode_ci,如果你的WordPress数据表使用的是utf8mb4_general_ci,跨排序规则的字段关联查询会触发索引失效,导致查询耗时升高。 - 冗余日志开启:Plesk为10.x版本默认开启临时慢查询日志、通用查询日志用于故障排查,后台无明显开关提示,额外的IO操作会拖慢查询速度,可执行
SHOW VARIABLES LIKE '%log%'检查冗余日志是否开启,关闭后即可恢复性能。
内容的提问来源于stack exchange,提问作者Leonardo Bernardini
相关产品推荐
相关产品推荐

