wp-config.php 里写了 define('WP_POST_REVISIONS', 3),一篇文章仍有 47 条修订,其中三十多条是 autosave,间隔正好 60 秒。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

SELECT post_parent, post_name, COUNT(*) AS n FROM wp_posts
WHERE post_type = 'revision'
GROUP BY post_parent, post_name ORDER BY n DESC LIMIT 10;

修订上限只约束正式保存产生的 revision,autosave 走的是另一条路径,不受这个常量限制。编辑器开着不动也会定时写,长文写两小时就能堆几十条。这一点先确认清楚,后面就不用反复试。

碰到「修订上限失效」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。

备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

具体做法是,先按 post_name 区分 autosave 与正式修订,别一起删;用 SQL 只保留每篇最近 3 条正式修订和 1 条 autosave;把 AUTOSAVE_INTERVAL 调到 120 秒,减少写入频率;定期跑清理脚本,别等表涨到几个 G 再动。

改完照着核一遍,单篇文章的修订条数降到 4 条以内,保存后不再每分钟新增一条。

作者 9823189