wordpress清理mysql数据库冗余:标签和别名缓存
引言:此文由子域名转移而来,因为细微强迫症和放弃子域名而不舍得完全丢弃,所以将会逐步第二次转移文章到主域名上来,二者主题(阿里白秀和D8)均来自大前端,追求完美的同时有一丝小懒,主题就不换了,D8主题用起来挺好。
wordpress数据库中存在冗余数据、垃圾数据是必然的,所以我们要定期清理。至于如何清理wordpress修订版本和自动保存草稿之前直接汇总了一篇文章(点击这里跳转),下面主要介绍如何清理wordpress数据库中标签和别名的冗余缓存。
在此先放一条清除冗余的sql语句,可以自己参考使用,因为之前没有提到过而已。
- DELETE FROM wp_postmeta WHERE meta_key = '_revision-control';
1、WordPress处理未使用的标签
wordpress数据库优化时,加入使用SQL语句手动来删除旧的文章,旧的标签有可能会出现并在你的标签云或列表中。所以可以用下面的方法识别未使用的标签并将它删除。
- SELECT * FROM wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id INNER JOIN wp_term_relationships wtr ON wtr.term_taxonomy_id=wtt.term_taxonomy_id LEFT JOIN wp_posts wp ON wp.ID=wtr.object_id WHERE taxonomy='post_tag' AND ID IS null
- AND NOT EXISTS(SELECT * From wp_terms wt2 INNER JOIN wp_term_taxonomy wtt2 ON wt2.term_id=wtt2.term_id WHERE wtt2.parent=wt.term_id) ORDER BY name;
2、删除wordpress 旧的文章别名(slug)
如果曾经发布文章后修改过别名,那么wordpress会自动301重定向到新的别名,虽然很好,但是在数据库中会用 _wp_old_slug这个meta_key保存别名。删除别名的方法如下:
①删除某篇文章的旧别名
- DELETE FROM `wp_postmeta` WHERE `meta_key` = '_wp_old_slug' AND `meta_value` = 'the-old-post-slug';
②删除所有文章的旧别名
- DELETE FROM `wp_postmeta` WHERE `meta_key` = '_wp_old_slug';
3、优化数据库
wordpress优化数据库方法可以参考:
①wordpress数据库清理优化插件WP Clean Up比WP Cleaner更强
②wordpress优化中wp-config.php的设置技巧