删除 WordPress 文章修订版本和自动草稿而残留的数据
在我们使用 WordPress 编写文章或修改文章时,WordPress 会自动保存生成一个修订版本,如果一篇文章经过几次的修订,你就会发现 WordPress 在不知不觉中已经帮我们保存了该文章的好几个版本,主要是方便恢复,初衷是好的,不过日积月累所生成的修订版本数量是所写文章的好几倍,会产生大量的冗余数据,加重服务器负担,拖慢数据加载的速度,极大影响SQL查询的效率。所以,要培养定期删除WordPress修订版本和自动草稿的习惯,这样才能保证我们的数据库能得到充分的清理,提高网站的执行效率和浏览速度。
但是怎样清理之前自动保存下来的修订版本和自动草稿功能呢? 下面为大家提供了怎样批量删除数据库中因 WordPress 文章修订版本、自动保存和自动草稿生成的大量占用数据库空间的冗余数据的2种方法:
方法1:进入 mysql 命令【 选择你所创建的数据库的命令:mysql> USE MYSQLDATA; (注:MYSQLDATA是数据库的名称。按回车键出现 Database changed 时说明选择数据库操作成功!) 】。选择好相应的数据库后,执行下面的 SQL 命令。
方法2:通过 phpmyadmin 登录后打开数据库管理系统,找到网站对应的wordpress数据库,点击后,在上方有个 SQL 按钮,执行下面的 SQL 命令
通过SQL命令先来看一下冗余数据(无用的自动修订、草稿等)。执行如下 SQL 命令:
-- 查看自动修订产生的冗余数据。注意:请根据自己的情况,修改表名(主要是表前缀)
SELECT * FROM wp_posts WHERE post_type = 'revision';
-- 删除冗余数据。仅删除 wp_posts 表中的修订版本。
DELETE FROM wp_posts WHERE post_type = 'revision';
-- 查看自动草稿冗余数据。
SELECT * FROM wp_posts WHERE post_status = 'auto-draft';
-- 删除自动草稿冗余数据。
DELETE FROM wp_posts WHERE post_status = 'auto-draft';
-- 删除修订版本所对应的相关联数据和自动草稿中的冗余数据。a.post_status='auto-draft'对应的是自动草稿数据
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_status='auto-draft' or a.post_type = 'revision';