搜索全站
性能优化 6 分钟阅读

数据库臃肿,用 WP-Optimize 清理修订版本与垃圾数据

文章改几次就存几份、垃圾评论堆积成山,数据库越来越胖网站越来越慢,备份也越拖越久?本文用 WP-Optimize 一步步清理修订版本、自动草稿、垃圾评论和过期瞬态数据并优化表,并教你从源头限制修订数量,安全给数据库瘦身,让备份和迁移也更轻松。

U
UFO_PF 2026-10-10 · 阅读 6 分钟
数据 性能优化
阅读提示
本文约 2,327 字,预计阅读 6 分钟。文中命令与配置均经过实测,可直接参考执行。

引言

很多人写文章习惯反复修改,WordPress 默认每保存一次就存一个修订版本,改二十次就有二十份副本。再加上自动保存的草稿、被垃圾评论轰炸留下的待审评论、插件卸载残留的表、过期瞬态数据,数据库会像滚雪球一样越来越大。这几个 G 的数据平时看不见,但每一次页面请求都要在这堆臃肿数据里查东西,查询自然越来越慢,备份文件也越来越大,导出一次要等很久。清理数据库听起来有点专业,其实用对工具加严格备份,站长自己就能安全完成。这篇带你把数据库从「胖子」变回「瘦子」。

故障原因分析

  1. 修订版本成灾。wp_posts 表里 post_type = 'revision' 的记录和正式文章一样多甚至更多,每条都占存储、都被备份。
  1. 自动草稿残留。post_status = 'auto-draft' 的空草稿记录,来自编辑器自动保存,长期不清。
  1. 垃圾评论与待审评论。wp_comments 里大量的 spam 和 trash,有的插件还会把垃圾评论写进 wp_comments 数千上万条。
  1. 已删除文章/评论的元数据孤儿。wp_postmeta、wp_commentmeta 里父级已不存在的记录,查不到却占空间。
  1. 过期瞬态和插件残留表。wp_options 的过期 _transient_ 选项,以及卸载插件没删干净的自建表。

分步解决方案

第一步:清理前先完整备份

这是铁律,不能省。可以用主机面板的备份功能、mysqldump 命令,或 UpdraftPlus、WPvivid 插件导出数据库。备份文件下载到本地另存一份,再做任何清理动作。

# 用 mysqldump 备份数据库(按实际替换库名、用户名)
mysqldump -u dbuser -p --single-transaction --routines dbname > backup.sql

--single-transaction 能保证备份期间不锁表,适合线上站点。

第二步:限制未来的修订版本数量

与其一直清,不如从源头控制。在 wp-config.php 里限制每篇文章最多保留的修订数:

// wp-config.php
define( 'WP_POST_REVISIONS', 5 );      // 每篇最多保留 5 个修订
// 或者彻底关闭修订(不推荐,写完想回退会很难)
// define( 'WP_POST_REVISIONS', false );

保存修订数也可在后台「文章 → 编辑」时手动设置。设成 5 既省空间又保留回退能力。

第三步:安装并认识 WP-Optimize

WP-Optimize 是目前最主流的数据库清理插件,免费版功能已足够。安装激活后进入「WP-Optimize → Database」。它会把可清理项分类列出:文章修订版本、自动草稿、已删除评论、待审评论、垃圾评论、已删除评论的元数据、过期瞬态、pingback、已卸载插件的表等。

第四步:勾选并清理垃圾数据

在列表里勾选要清理的项目,点「Run optimization」。建议勾选:修订版本、自动草稿、垃圾评论、待审评论、已删除评论、孤儿评论元数据、过期瞬态、弃用的 post meta。勾选前先看一眼每项右边显示的可清理条数,确认数值合理(比如修订版本几千条属正常)。

清理前后都可以在页面顶部看到「数据库已优化掉多少空间」。若清理量大,页面可能跑几十秒,别中途关闭。

第五步:优化数据库表结构

清理只是删行,表文件里的空洞还在。WP-Optimize 有「Tables」标签页,列出所有表,点「Optimize」会对每张表做 OPTIMIZE TABLE,回收碎片、重建索引、刷新统计信息。也可以在 phpMyAdmin 里全选表后点「优化表」。InnoDB 大表优化耗时较长,建议在访问低峰期执行。

如果想更省事,WP-Optimize 支持设置「每日自动清理并优化」,把它交给计划任务,日常无感维护。

第六步:验证效果

清理后看数据库总大小(WP-Optimize 顶部有显示,或看 phpMyAdmin 各表体积)。再用 Query Monitor 打开一个页面,看查询耗时是否下降。同时确认文章、评论、缩略图都还正常显示,尤其抽查几篇老文章和评论列表。

常见踩坑点

  1. 不备份就清理。这是最危险的错误,清理把还在用的数据删掉,没有备份就只能重装,务必先导出整库。
  1. 误清「待审评论」。待审评论里可能有读者认真写的留言还没审核,一键清掉会误删真实反馈,清理前先筛一遍。
  1. 全站每篇文章修订都删得很干净。有人图省事把修订全删,结果发现改错文章想回退却没有历史版本,建议保留少量修订。
  1. 在高峰期执行大表优化。OPTIMIZE TABLE 在 InnoDB 上会重建表,期间可能锁表导致访问变慢,安排在深夜或低峰跑。
  1. 只清不限制,过段时间又胖回来。清理后一定配合 WP_POST_REVISIONS 限制和评论审核策略,否则下次检查又是老样子。

总结

数据库臃肿是 WordPress 变慢的隐形推手,修订版本、自动草稿、垃圾评论和孤儿元数据日积月累,让每次查询和备份都变重。用 WP-Optimize 处理起来并不复杂:先完整备份,再用 WP_POST_REVISIONS 从源头限制修订数量,然后在插件里勾选各类垃圾数据一键清理,最后优化表结构回收碎片,并可设为每日自动维护。整个过程的核心是「先备份、再动手、勤复验」。只要养成定期清理数据库的习惯,站点不仅能明显提速,备份和迁移也会轻松许多,这是每个独立站长都该掌握的日常维护动作。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。