问题现象
数据库体积半年涨了几倍,打开表一看修订记录占了七成。
原因分析
每次保存都生成一条修订,且没有设置保留上限,编辑次数多的长文累积下来体积增长很快。判断时先分清是 WordPress 修订版本 本身的配置问题,还是上游调用、运行环境带进来的差异;前者改配置就能收口,后者要沿着请求链路一层层往上找,处理顺序不能颠倒。先在出问题的机器上复现一次,把报错原文和发生时间记下来,再对着日志定位。
处理步骤
- 限制修订数量
- 清理历史修订
- 优化表回收空间
对应的命令或配置片段如下,可直接复制:
define('WP_POST_REVISIONS', 5);
define('AUTOSAVE_INTERVAL', 120);
# 清理
wp post delete $(wp post list --post_type=revision --format=ids) --force
排查时把每一步的输出留下来,后面再遇到同类问题,对照日志就能判断是哪一层先出错的。改动前把原配置备份一份,出问题时能马上回退,比现场找原因省时间。
验证结果
修订表体积明显下降,编辑历史仍保留最近几条。