清理wordpress冗余数据

08-28 | 夜光 | IT记录

一、wordpress(2.9+)数据库中有11个表:
wp_commentmeta 2.9新增的表,用于保存评论的元信息,在将评论放入回收站等操作时会将数据放入此表,Akismet等插件也会生成此表的数据,此表不太重要。
wp_comments 用于保存评论信息的表。
wp_links 用于保存用户存入到Wordpress中的链接。
wp_options 用于保存Wordpress相关设置、参数的表,里面包括了大量的重要信息。
wp_postmeta 用于保存文章的元信息(meta)的表。
wp_posts 用于保存你所有的文章相关信息的表,非常的重要,一般它存储的数据是最多的。
wp_terms 文章和链接分类以及文章的tag分类可以在表里找到。
wp_term_relationships 日志与wp_terms中的类别与标签联合起来共同存储在这个表中,类别相关链接也存储在这个表中。
wp_term_taxonomy 该表对wp_terms表中的条目分类(类别、链接以及标签)进行说明。
wp_usermeta 用于保存用户元信息(meta)的表。
wp_users 用于保存Wordpress使用者的相关信息的表。

二、使用phpMyAdmin依次执行以下语句进行清理:

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 pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL;
SELECT COUNT(*) FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL;
或:
DELETE FROM wp_postmeta WHERE NOT EXISTS ( SELECT * FROM wp_posts WHERE wp_postmeta.post_id = wp_posts.ID );
SELECT COUNT(*) FROM wp_postmeta WHERE NOT EXISTS ( SELECT * FROM wp_posts WHERE wp_postmeta.post_id = wp_posts.ID ); 
DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments);
SELECT COUNT(*) FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments);
DELETE FROM wp_term_relationships WHERE term_taxonomy_id=1 AND object_id NOT IN (SELECT id FROM wp_posts);
SELECT COUNT(*) FROM wp_term_relationships WHERE term_taxonomy_id=1 AND object_id NOT IN (SELECT id FROM wp_posts);
DELETE FROM wp_options WHERE option_name LIKE '_site_transient_browser_%' OR option_name LIKE '_site_transient_timeout_browser_%' OR option_name LIKE '_transient_feed_%' OR option_name LIKE '_transient_timeout_feed_%';
SELECT COUNT(*) FROM wp_options WHERE option_name LIKE '_site_transient_browser_%' OR option_name LIKE '_site_transient_timeout_browser_%' OR option_name LIKE '_transient_feed_%' OR option_name LIKE '_transient_timeout_feed_%';
本文标签: ,
本文链接: clean-wordpress-redundant-data/
版权所有: 玻璃泉, 转载请注明本文出处。