安全清理WordPress wp_postmeta表

时间:2013-09-10 作者:Matoeil

为了便于维护我的网站,优化页面加载,并帮助数据库迁移,我正在尝试清理我网站的wordpress数据库。我意识到wp Posteta表本身的重量为240个月!!我如何才能清除这些内容,区分哪些是必需的,哪些不是必需的,并安全地删除无用的内容?

1 个回复
SO网友:s_ha_dum

我能想到的唯一通用半自动程序是删除post-meta,其中post_id 无效。

SELECT * 
FROM {$wpdb->postmeta} as pm 
LEFT JOIN {$wpdb->posts} as p
  ON pm.post_id = p.ID
WHERE p.ID IS NULL
我写了一个SELECT 而不是DELETE 因为我不相信这在所有情况下都有效。我在Posteta表中看到了“dummy”或“placeholder”值post_id 属于0 或者一些荒谬的高价值。我并不是说这些都是好主意,但我已经看到了,所以请注意。你最好检查一下它返回的数据SELECT 然后有选择地删除项目。

我真的不希望在没有post的情况下,post meta有什么意义,除了一些令人怀疑的明智用法之外。

你可以做的另一件劳动密集型的事情是meta_keys 并尝试找出属于不再使用的插件的密钥。可能无法识别它们,但您可以尝试。一些插件使用可识别的前缀或后缀。

结束

相关推荐

从现有MySQL安装程序迁移到WordPress

我当前有一个具有以下架构的数据库:表:文章列:ID、标题、作者、内容表:作者列:ID、AuthorName、EmailAddress表:类别列:ID、CategoryName我有兴趣把这个转移到WordPress上。我实际上不需要保留authors或categories表,因为我们正在迁移中修改这些部分。但是,我确实需要保存articles表的某些行(或者所有行,如果更容易的话)。这包括保持作者ID与之链接。我愿意手动查询,以选择要移到新表的行,但我不确定应该在哪里执行此操作。因此,我的问题是:如何以最简