优先提示:以下操作带有一定的风险,请先备份好数据库再操作!!!
WordPress使用MySQL数据库,先来看一下每个表对应的内容,没耐心的可跳过直接看下一节→具体清理步骤
首先我们需要了解Wordpress各个数据库表(3.0以上)的作用,这样删除的时候心里有底。
(1)wp_commentmeta: 用于保存评论的元信息,在将评论放入回收站等操作时会将数据放入此表,Akismet等插件也会生成此表的数据。此表不太重要。
(2)wp_comments: 用于保存评论信息的表。
(3)wp_links: 用于保存用户输入到Wordpress中的链接(通过Link Manager)的表。
(4)wp_options: 用于保存Wordpress相关设置、参数的表,里面包括了大量的重要信息。
(5)wp_postmeta: 用于保存文章的元信息(meta)的表。此表不太重要。
(6)wp_posts: 用于保存你所有的文章相关信息的表,非常的重要。一般它存储的数据是最多的。
(7)wp_terms: 文章和链接分类以及文章的tag分类可以在表里找到。
(8)wp_term_relationships: 日志与wp_terms中的类别与标签联合起来共同存储在wp_terms_relationships表中。类别相关链接也存储在wp_terms_relationships中。
(9)wp_term_taxonomy: 该表格对wp_terms表中的条目分类(类别、链接以及标签)进行说明。
(10)wp_usermeta : 用于保存用户元信息(meta)的表。
(11)wp_users:用于保存Wordpress使用者的相关信息的表。 »»»点击获取英文原版说明
具体清理步骤
» 清理wp_commentmeta
如果文章的所有评论中并没有此条评论,那么它在wp_commentmeta中也没有意义。用下面2个语句分别进行清理DELETE FROM wp_comments WHERE comment_approved = 'trash';
DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments);
另外在wp_commentmeta里面会记录评论被删除的时间,基本没什么意义,使用以下语句进行清理DELETE FROM wp_commentmeta WHERE meta_key LIKE '%trash%';
因为wp_commentmeta没有涉及要重要数据,所以彻底清除的话影响不会太大。 以下是清空wp_commentmeta表语句TRUNCATE TABLE wp_commentmeta
» 清理Wp-options
第一种方法(暂不赘述,插件大家都会用吧):使用Clean Options plugin插件
第二种方法(新手不要做,有点小危险)
1本地端-在本地电脑上搭建一个全新的Wordpress
2本地端-将本地的wp_options表进行单独导出
3服务器端-先备份数据库,接着停用服务器上所有博客插件
4服务器端-在服务器后台的phpmyadmin中单独勾选wp_options表并清空
5服务器端-在服务器后台的phpmyadmin导入刚才在本地导出的wp_options表
6服务器端-phpmyadmin中的wp_options表的siteurl字段改成你的域名
7服务器端-WordPress里的【常规-站点地址(URL)改成你的地址】。
8服务器端-固定链接也要改成你原先的类型。
» 清理wp_postmeta
分别执行以下代码DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';
DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';
DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug';
DELETE FROM wp_postmeta WHERE meta_key = '_revision-control';
下面一条也是删除语句,但是貌似有风险,不建议使用。期待高手来解释一下该语句的具体意思
DELETE FROM wp_postmeta WHERE meta_value = '{{unknown}}';
» 清理wp_posts
第一种方法:WP Cleaner插件(删除无用的修订版、自动草稿及自动保存的文章,减小空间,提高性能。有了上面的超级开关插件,WP Cleaner基本使用一次就足够了。)
第二种方法:执行以下语句
DELETE FROM wp_posts WHERE post_type = "revision";
最后再介绍下手动删除垃圾评论的语句
DELETE from wp_comments WHERE comment_approved = '0';
本猫简单总结一下:前面写了这么多其实都不用看了,要清理冗余数据,分别依次执行以下语句就够了
DELETE FROM wp_comments WHERE comment_approved = 'trash';
DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments);
DELETE FROM wp_commentmeta WHERE meta_key LIKE '%trash%';
DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';
DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';
DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug';
DELETE FROM wp_postmeta WHERE meta_key = '_revision-control';
DELETE FROM wp_posts WHERE post_type = "revision";
DELETE FROM wp_posts WHERE post_status = "auto-draft";
DELETE from wp_comments WHERE comment_approved = '0';
最后,在phpMyAdmin中,选中所有表,点“优化表”。
经过这一番优化操作,就可以将WordPress数据库中的冗余数据删除,优化了数据库的性能。
最后推荐一个插件Super Switch(超级开关) 可以有选择地禁用Wordpress部分功能(其中就包括关闭自动草稿功能),或许可以使博客更快。
最后提醒一下,一定要事先备份好数据库!!!!!!!!
文章评论
感觉主机最近快了许多啊~~
@咕噜噜 一直都这么快。呵呵。
新博客 以后在优化
感谢博主的文章;另页面飘雪的效果?
学习了 呵呵