WordPress数据库的清理

TC16年前 (2010-09-01)网站与博客1116
WordPress逐渐在给新版本集成一些不实用的功能,比如修订、自动保存、回收站等等。
这是很奇怪的事情,因为那些不能算是核心功能,本可以交给插件去实现的,现在却因为集成在wp中,容易造成数据库垃圾。
清理插件生成的表格就不消说了,除了下面这几个,其他都不是wp的必需品,可删之。

但除了会生成表格外,很多垃圾其实是长在wp自带的表中的。
这次WordPress的数据库清理,主要是三个表:options、postmeta、posts。

options
options中会留下的垃圾主要是由于插件和模板造成的。
在我用过的插件中,唯一不会留下数据库垃圾的就是postviews。这个插件在卸载时也会自动卸掉自己在数据库中留下的所有印记(要用插件自己的卸载功能,不要直接在FTP中删除插件文件)。
但其他的插件就不是这样了,卸载后仍然会在数据库中留下已经无用的表和字段。
而且,autoload还是yes……
<—以前的插件留下的垃圾

模板也是如此,有些模板也会在options中留下记录,判断的标准并不是模板是否有后台选项。有些没有后台选项的模板也会留下垃圾,而有些带有后台选项的模板却是干干净净的。
这方面的判断要靠对wp的熟悉了,或者也有相应插件。
我没用过清理数据库的插件,无法做推荐。

postmeta
主要是附件、插件、帖子编辑产生的字段。而如果这样的字段并非必要,也就成了垃圾。
wp中每上传一个附件都会生成字段(达成附件和帖子的关联),这些可以不去动它。
但实际上,除了用到来显示帖子图片,或者必须和帖子关联才能生成缩略图的插件或模板外,这个关联也没有太大实际意义。

由于以前使用的comfy模板预装了ratings插件,数据库中留下了大量的ratings相关字段,用SQL命令删之。
例如:
DELETE FROM `库名`.`表前缀_postmeta` WHERE `表前缀_postmeta`.`meta_key` = ‘ratings_average’;

另外,postmeta中还可以看到这样的字段:_edit_lock 以及 _edit_last。
这些则是编辑帖子时产生的,目的是锁定正在编辑的帖子,防止不同的用户同时编辑同一个帖。
删掉这些字段的命令和上面的一样。
例如:DELETE FROM `库名`.`表前缀_postmeta`
WHERE `表前缀_postmeta`.`meta_key` = ‘_edit_lock’;

但之后编辑帖子时,又会在每编辑一帖的时候自动新增一批这样的字段。

posts
posts中的垃圾主要是wp的自动保存等功能造成的。
wp2.8中有修订功能,像wiki一样允许将帖子恢复为旧版。
但wp不是wiki,这功能实在没什么必要,反而会加大数据库的读取量。
自动保存也是鸡肋,我用的火狐浏览器,如果需要这样的功能,完全可以用火狐插件或油猴子脚本来实现,根本不需要wp自作主张给我保存。
通过修改wp的php代码可以禁用这些功能,但要删除以前产生的旧版,就需要进数据库。
这一步是几天前就做了的,我已经忘了当时的数据库状况和所用的SQL语句了。
不过,又一个无用字段inherit却是现成的。

很明显,post_status为inherit的内容(post_content)是空的,这又是没意义的垃圾。
删它没商量:
DELETE FROM `数据库名`.`表前缀_posts` WHERE `表前缀_posts`.`post_status` = ‘inherit’;

这一删就是近900行。

终于把posts的行数(550)和wp后台显示的文章数(549+1)统一起来了。

这三个表就清理出了三四兆、一两千行的垃圾数据。
真不愧是自从装了WP以后就没再管过数据库的……




陈年旧评分割线(评论顺序 ↑)




emize_info:马克 藏

TombCrow:wopus.org看到删除修订记录的语句,拷贝到这里汇总~DELETE FROM wp_postmeta WHERE post_id IN (SELECT id FROM wp_posts WHERE post_type = 'revision');DELETE FROM wp_term_relationships WHERE object_id IN (SELECT id FROM wp_posts
返回列表

上一篇:SMF的修改

下一篇:WordPress的修改

相关文章

s笔记:涩兔子

s笔记:涩兔子

1.解决导出的sql文件 mysqldump出来的sql文件,用vi打开,使用群替换 : %s/latin1/utf8/g 把所有latin1的相关信息都改成utf8 2.解决导入的问题 mysql -usirtoozee -p123456 linuxfans < linuxfans.sql ...

WordPress论坛插件:SimplePress与WP-Forum

WordPress论坛插件:SimplePress与WP-Forum

我怎么过一阵子就会去捣鼓一下PHP程序……我哪有那么闲啊!记得以前只要回家盯着机箱看几秒钟,老妈就神经紧张,问:“你又要拆机箱了?”现在倒是不那么折腾硬件了(更大的原因在于现在主要用笔记本……),但开始折腾软件了……最近折腾的是Wordpress的论坛插件。因为是“插件”,所以像BBPress这些...

BSP的RSS订阅

BSP的RSS订阅

刚才打开 G00gle Reader,又看到在新浪订阅的博客的更新。新浪大概能位列最小心眼的BSP之列了,到现在都不允许在阅读器里查看图片。在阅读器里看到这类“反盗”图,还是相当碍眼的。相比防止“流量”被消耗,新浪这样倒更像是防止“流量”损失。虽然“防盗”措施各大BSP都有(包括百度),但考虑到RS...

百度支持视频了?

百度支持视频了?

贴一个试试陈年旧评分割线(评论顺序 ↑)匿名网友:@_@这个不是youtube的视频啊TombCrow:多谢指点~~TO 4楼的:百度没骗人,所以我不是人~~~莫希:今天有鸟刚说过,如果骗人,它就是人!费茨::Dsubaru:火狐找到未知插件(text/html)4-TombCrow:……百度骗人!...

mediawiki用户密码重置

mediawiki用户密码重置

我的密码忘了,虽然可以给mw设置发送邮件,我还是嫌它麻烦,还是直接写命令好了。进入mw的 maintenance 目录,输入命令: php7.4 changePassword.php --user=TombCrow --password=要的密码  好了,我终于可以用回...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法和观点。