正在载入...

清理wordpress数据库
wordpress在数据库产生冗余数据、垃圾数据的原因是多方面的,最主要有以下几方面的原因:第一,换主题和装插件。使用WordPress经常换主题删主题,装插件删插件很正常,但是简单的删除并不彻底,数据库会有残留,多余的数据保留在post_meta表格里,久而久之就成了一堆可观的垃圾。第二,WordPress草稿修订版本删除。第三,未使用的标签。以下介绍清理wordpress数据库mysql的冗余数据的几种方法:
清理wordpress数据库


清理数据库表wp_postmeta

下面在给出几条语句让你的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}}';

这五条语句执行完毕能够删除掉95%以上的数据,算的上是极限优化了。最后考虑到这个数据表并不是很重要,有洁净癖的人可以尝试清空这个表,当然我测试清空表会让一些原本的数据丢失。

在WordPress的后台上传图片或者附件后会在wp_postmeta中生成_wp_attached_file和_wp_attachment_metadata两个项,wp_posts也会记录附件的信息,所以我决定改用FTP工具上传。


WordPress草稿修订版本删除

在WordPress后台中编辑文章时,系统会自动保存许多修订的副本。过多的修订记录会加重数据库的负担并造成了资源的浪费。数据库越来越庞大,增加了数据检索影响页面的加载时间。

执行SQL语句

DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'
注意:此方法将删除所有的文章的所有修订版,包括相关的meta数据。


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;


最后,优化表

至此,wordpress数据库彻底干净了。回到数据库结构,点击“优化表”。
清理wordpress数据库
清理工作结束,祝生活愉快!

本文链接:

关键词:MySQL, WordPress, 代码, 数据库,

(全文完        )

Comments

哈哈,沙发有木有?!!!抢沙发快速评论

你需要 登录 才可以回复.