精简你的wordpress数据库

    查看wordpress的数据库的时候突然发现wp_posts表里有很多重复的内容,这个表中存放着用户发布的日志、页面等内容。这些都可以在后台重新编辑。表中存放了所有编辑过的版本的信息。因此,你也许你只发表了一篇日志,但是你修改了10次,那么数据库中存有你10次修改过后的数据。这些版本数据对我来说是冗余数据,我觉得没有必要存放他们,而且因为我刚开始并不打算租一个高配置的空间,所以想把自己的博客弄到最精简。

    查看表中内容你会发现,第一次发布的版本的post_parent为0,而所有修改后的版本的post_parent为第一次发布的记录的ID,因此,我只要保留post_parent <> 0 的ID最大的记录,也就是最后修改的那条记录就可以了。对于第一次发布的版本数据来说,目前为止还没有找到比较好的处理方法,因为第一次发布的版本数据涉及到permanent link,还有留言的回复也参照它的id,我还没有做过尝试,感觉还是保留它比较好。

下面是删除这些中间版本的sql

DELETE FROM  `wp_posts` WHERE ID NOT IN (
  SELECT id
  FROM (
    SELECT MAX( ID ) AS  `id` , post_parent
    FROM  `wp_posts`
    WHERE post_parent <> 0
    GROUP BY post_parent
  ) AS wp
)
AND post_parent <> 0

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

Close Bitnami banner
Bitnami