MySQL 查询超时:(70100):查询执行被中断

Rog*_* W. 5 mysql wordpress

我想,以删除所有执行MySQL查询Wp_posts表中的行这post_parent是一个Wp_posts具有行post_type集产品;

所以我做

INSERT INTO temp (SELECT DISTINCT id FROM wp_posts WHERE post_type = "product")
Run Code Online (Sandbox Code Playgroud)

(插入 4k 行)

DELETE FROM wp_posts WHERE post_parent IN (SELECT tid FROM temp)
Run Code Online (Sandbox Code Playgroud)

..

大约 100 秒后,它返回

ERROR 1317 (70100): 查询执行被中断

是什么让这个查询如此缓慢?

Gor*_*off 2

MySQL 的某些版本in以非常低效的方式实现子查询。将其更改为相关exists子句:

DELETE FROM wp_posts
    WHERE exists (SELECT 1 FROM temp where temp.tid = wp_posts.post_parent)
Run Code Online (Sandbox Code Playgroud)