优化数据库 清理wp_postmeta表无用数据


这篇文章讲解一下wp_postmeta表的无用数据清理,纵观网上很多文章只是寥寥几句话给出了SQL语句,并没有注明每个语句具体对应功能,我们知道数据库的操作时十分高危的,特别是对WordPress数据库表及字段设计不清楚的小白站长,因此请大家务必明白每条SQL语句的功能及对应的影响。

1、删除文章中不存在文章的元信息

DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT post_id FROM wp_posts);

2、删除_edit_lock以及_edit_last无用字段。

DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';
DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';

3、在WordPress的后台上传图片或者附件后会在wp_postmeta中生成_wp_attached_file_wp_attachment_metadata两个项,wp_posts也会记录附件的信息。如果使用FTP工具上传文件,表中就不会有这些信息,如果你不需要管理你的多媒体文件可以使用下面的两句进行清理。

DELETE FROM wp_postmeta WHERE meta_key = '_wp_attached_file';
DELETE FROM wp_postmeta WHERE meta_key = '_wp_attachment_metadata';

4、当wordpress文章更换别名时,会在postmeta表中留存一个旧的别名信息,如果你的主题使用不到这个字段,可以考虑删除。

DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug';

5、其它冗余信息删除

DELETE FROM wp_postmeta WHERE meta_key = '_revision-control';
DELETE FROM wp_postmeta WHERE meta_value = '{{unknown}}';
回到顶部