wordpress数据库优化
1、WordPress残留垃圾数据删除
使用WordPress经常换主题删主题,装插件删插件很正常,但是简单的删除并不彻底,数据库会有残留,多余的数据保留在post_meta表格里,久而久之就成了一堆可观的垃圾。可使用下面的SQL语句来清除不需要的post meta值。有益于加快数据库运行速度,减小数据。
执行SQL语句
1DELETE FROM wp_postmeta WHERE meta_key='_edit_lock';
2DELETE FROM wp_postmeta WHERE meta_key='_edit_last';
注:如果你在安装时使用的不是wp_前缀而是其他前缀,刚将wp_换成你使用的前辍。下面的sql语句也是一样。运行该sql时,如果出现1054 – Unknown column ‘‘_edit_lock’’ in ‘where clause’ 这样的错误是,因为引号使用错误,正确的因为切换在英文状态下的单引号就对了。
2、WordPress草稿修订版本删除
在WordPress后台中编辑文章时,系统会自动保存许多修订的副本。过多的修订记录会加重数据库的负担并造成了资源的浪费。数据库越来越庞大,增加了数据检索影响页面的加载时间。
执行SQL语句
1DELETE a,b,c FROM wp_posts a
2LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
3LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
4WHERE a.post_type='revision';
注意:此方法将删除所有的文章的所有修订版,包括相关的meta数据。
3、WordPress处理未使用的标签
在WordPress数据库中,如果你使用一个查询语句手动来删除旧的文章,旧的标签却仍然会保留并在你的标签云/列表中出现。你可以使用下面的方法识别未使用的标签并将它删除。
执行SQL语句
1SELECT * FROM wp_terms wt
2INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id
3INNER JOIN wp_term_relationships wtr ON wtr.term_taxonomy_id=wtt.term_taxonomy_id
4LEFT JOIN wp_posts wp ON wp.ID=wtr.object_id
5WHERE taxonomy='post_tag'
6AND ID IS null
7AND NOT EXISTS(SELECT * From wp_terms wt2
8INNER JOIN wp_term_taxonomy wtt2 ON wt2.term_id=wtt2.term_id WHERE wtt2.parent=wt.term_id) ORDER BY name;
4、修复和优化
执行完所有的语句之后,全选所有的表,然后选择“修复表”和“优化表”。
有图有真像,我这里还是用的navicat工具,运行命令的我就不截图了,真接按F6,运行sql就行了。全选表直接按ctrl全选就行,右键“维护表”里有优化和分析表。
号外:除了用该方法外,也可以通过安装插件完成上面的工作,不过因为插件装的太多,对性能不大好。我自己没装,也不再举例。最后,提醒大家一句,任何操作前,最好先做下备份,有问题了容易恢复。这也是做维护的一个比较好的习惯。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/wordpress-sqlyh/201.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.