中国IDC圈10月15日报道:刚用wordpress的朋友细心一点可能会发现,每当当发表或编辑一篇文章,保存有十几个草稿版本的时候,会增加很多垃圾数据,无形之中增大数据库压力,wordpress本身就有反映慢等缺点,对于用户体验来说有一定影响。
目前后进者网络暂未找到一个好的方法(好的方法意思是不用修改到wp核心代码)关闭这个功能,此方法对于wordpress新手比较实用,对于老鸟或许能够抛砖引玉,如果有更好的方法,请联系我们。
目前比较流行方式是采用老外写的一个禁用WordPress自动保存的插件,激活这个插件后,彻底关闭了自动保存的功能。这里想要推荐的是另一个插件wp db manager:一款可以优化、修复、定期备份、执行mysql命令的插件,这里就不吹唾沫子了。
安装好这个插件之后,可以选择Optimize DB优化数据库,下面再分享一下几个比较实用的SQL语句。
1、WordPress残留垃圾数据删除 使用WordPress经常换主题删主题,装插件删插件很正常,但是简单的删除并不彻底,数据库会有残留,多余的数据保留在post_meta表格里,久而久之就成了一堆可观的垃圾。可使用下面的SQL语句来清除不需要的post meta值。有益于加快数据库运行速度,减小数据。 处理方法:清理wp_postmeta数据表,删除文章Meta标签,执行SQL语句,(建议先备份数据库,以上商法,后进者网络均已测试无误) DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock'; DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';
2、WordPress草稿修订版本删除 在WordPress后台中编辑文章时,系统会自动保存许多修订的副本。过多的修订记录会加重数据库的负担并造成了资源的浪费。数据库越来越庞大,增加了数据检索影响页面的加载时间。 处理方法:清理wp_posts数据表,删除草稿修订版本,执行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数据。 也可以使用插件WP-Cleane处理。
3、WordPress删除所有的垃圾评论 遇到N多垃圾评论,一个一个删除的话会崩溃。可使用下面的SQL语句查询,删除再多多条垃圾评论也不是难事。 处理方法:执行SQL语句 DELETE FROM wp_comments WHERE comment_approved = 'spam'; 0 = Comment Awaiting Moderation 1 = Approved Comment spam = Comment marked as Spam 先用上面方法删除之前的垃圾评论,以后推荐使用Akismet插件,Akismet拥有广泛的垃圾留言过滤系统,省下很多事。
4、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; 。