对于wp_Delete_POST,每秒30个帖子是否被认为很慢?

时间:2017-08-20 作者:beeef

我的WordPress中有大约90000篇帖子,我想用插件删除其中的大部分。我从需要删除的帖子中提取所有ID,然后执行以下操作:

// $delete_posts contains all IDs
foreach ($delete_posts as $dp) {
    wp_delete_post($dp, true);
}
我坐在这里想知道为什么我的插件不能像预期的那样工作——我用PhpMyAdmin检查了我的数据库,发现帖子被删除的速度非常慢。也许每秒30个帖子?那肯定太慢了。还是我滥用了这个功能来删除帖子?

2 个回复
SO网友:Johansson

处理以下内容的任何函数的速度因子wp_insert_post()wp_delete_post() 这在很大程度上取决于它所处理的情况和内容。

让我们做一个简单的例子。您有一篇帖子,其中包含特色图片、十几个标记、类别、1000个自定义字段、指定的分类法以及100多个。运行命令删除此帖子时,您不仅要尝试从数据库中删除永久链接,还要尝试以下操作:

拆下帖子缩略图,删除十几个术语关系,运行一个循环,处理一百万元数据,甚至更多如果您运行SQL命令,只需从数据库中删除帖子的数据(不推荐),它可能会加快每秒数千篇帖子的速度。但是,完全删除内容并断开关系的链接是一项艰巨的任务。

SO网友:Joe_19

是的,30秒绝对是删除帖子的时间。但问题似乎不是wordpress,它甚至可能是另一个核心PHP框架。在我看来,mysql数据库的问题及其优化。只需检查您有多少条记录,主键是什么(您是否按ID或帖子名称删除?),有多少列等。重要的是要知道该表打开得很快。例如,在我们拥有300万条记录的最大项目中,他们很快就删除了-http://merehead.com/projects/frevend/

结束

相关推荐

WP_User_Query and user posts

我使用WP\\u User\\u查询查询了一个用户列表,从中我获得了头像、名称和一些我为用户注册创建的ACF。现在,我需要获得结果中每个用户的帖子列表,但我不知道怎么做。这是我在WP\\u User\\u query中的查询:$postArgs = array ( \'author__in\'=> array(2,4,6), //Authors\'s id\'s you like to include \'post_ty