WordPress优化:清除数据冗余,为数据库瘦身

2013-06-24 20:47 阅读 571 次 评论关闭

第一步:清理冗余的数据表

WordPress 建站后,在数据库中会生成11项数据表,储存着网站的核心数据。除了这11项数据表外,其他存在于数据库中数据表均由安装的插件生成,如果这些插件已经停用,请把这些数据表直接删除。

以下清理工作将使用 Sql 语句完成,请转到数据库管理 phpMyAdmin 页面。如果 Sql 语句在执行中出现了错误,首先,请核实是否改变了数据表的前缀;再次,请将 Sql 单句执行,以免发生错误的语句影响其他语句的正常执行。

第二步:清理评论数据冗余

评论信息储存于 wp_comments 和 wp_commentmeta 这两项数据表中。

wp_comments:用于存储评论

wp_commentmeta:用于储存评论的元数据,一般情况下,该数据表上的数据全部由反垃圾评论 Akismet 插件生成。所以说即使清空此数据表也不会有任何影响。

清除 wp_commentmeta 冗余数据

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 全部数据

TRUNCATE TABLE wp_commentmeta
第三步:清理文章数据冗余

信息冗余储存于 wp_posts 和 wp_postmeta 这两项数据表中。

1.清理 wp_posts 冗余数据

wp_posts:存储文章数据,包含文章标题,文章地址,文章内容及发布时间等等。

下列 Sql 语句将清理文章修订版本及其ID,包含自动保存草稿。

DELETE FROM wp_postmeta WHERE post_id IN (SELECT id FROM wp_posts WHERE post_type='revision');
DELETE FROM wp_term_relationships WHERE object_id IN (SELECT id FROM wp_posts WHERE post_type='revision');
DELETE FROM wp_posts WHERE post_type='revision';

在更近一步的话,直接清理掉未发布的文章及其id,其中包含了修订草稿,未审核的文章以及所有文章的特色图片。

DELETE FROM wp_postmeta WHERE post_id IN (SELECT id FROM wp_posts WHERE post_status!='publish');
DELETE FROM wp_term_relationships WHERE object_id IN (SELECT id FROM wp_posts WHERE post_status!='publish');
DELETE FROM wp_posts WHERE post_status!='publish';

2.清理 wp_postmeta 冗余数据

wp_postmeta:服务于文章,包含特色图片,文章自定义字段,插件生成的数据(比如:wp-postviews)等等。

_edit_lock 和 _edit_last ,在编辑文章时生成,目的是锁定正在编辑的帖子,以防止不同的用户同时编辑同一篇文章。

_wp_old_slug 储存了旧有的固定链接,在更改了新的固定链接后,原有的文章固定链接将这样保存下来。

_revision-control 存储修订版本的控制信息。

下列的 Sql 语句不言而喻,即要清除这些废弃的字段。

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}}';

把 {{unknown}} 更换为你添加添加过的自定义字段,删掉他们。

第四步:清理分类数据冗余

分类数据储存在 wp_terms,wp_term_taxonomy 以及 wp_term_relationships 三项数据表中。

清理掉未使用的文章标签

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 );
DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms);
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

 

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:WordPress优化:清除数据冗余,为数据库瘦身 | 猎微网

评论已关闭!