WordPress技巧-SQL-数据库清理 wp_postmeta表的_edit_lock和_edit_last

wp_postmeta清理
https://awy.me/2011/03/improve-the-speed-of-wordpress-database-clean-optimization/

wp_postmeta是文章的元信息表,其数据是系统或者插件使用

冗余原因

(1)文章被删除之后,其在wp_postmeta中的数据理应被删除,在系统中多数情况是系统自动删除,但是由于人为删除文章,系统不知道被删除,就不会删除wp_postmeta表中的数据,造成冗余

(2)很多主题、插件没有做好及时清除的工作

解决办法:

(1) 手动删除

(1.0)规矩删除

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

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

(1.1)安全删除

删除_edit_lock和_edit_last条目是安全的,所以这里给出SQL语句

DELETE FROM wp_postmeta WHERE meta_key = ‘_edit_lock’;
DELETE FROM wp_postmeta WHERE meta_key = ‘_edit_last’;

(1.2)风险删除

除了这两条还执行了一些其他语句由于有些风险:自己酌情考虑

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}}’;

(1.3)特殊插件删除

postnav插件会记录每个文章的访问数,如果不需要,可以删除

DELETE FROM wp_postmeta WHERE meta_key = ‘views’;

(1.4)特殊操作删除

在WordPress的后台上传图片或者附件后会在wp_postmeta中生成_wp_attached_file和_wp_attachment_metadata两个项,wp_posts也会记录附件的信息。
如果使用FTP工具上传文件,表中就不会有这些信息。