【问题标题】:MySQL query timing out: (70100): Query execution was interruptedMySQL查询超时:(70100):查询执行被中断
【发布时间】:2013-07-23 08:48:06
【问题描述】:

我想执行一个 MySQL 查询以删除所有 Wp_posts 表行,其中 post_parentWp_posts 行,post_type 设置为产品;

所以我愿意

INSERT INTO temp (SELECT DISTINCT id FROM wp_posts WHERE post_type = "product")

(插入 4k 行)

DELETE FROM wp_posts WHERE post_parent IN (SELECT tid FROM temp)

..

大约 100 秒后,它返回

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

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

【问题讨论】:

    标签: mysql wordpress


    【解决方案1】:

    您需要在my.ini 配置文件中将max_allowed_packet 更改为更高的值。

    这可能会有所帮助:

    Packet Too Large

    通信包是发送到 MySQL 服务器的单个 SQL 语句,发送到客户端的单行,或者从主复制服务器发送到从服务器的二进制日志事件。

    可以与 MySQL 5.5 服务器或客户端传输或从 MySQL 5.5 服务器或客户端传输的最大可能数据包为 1GB。

    【讨论】:

    【解决方案2】:

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

    DELETE FROM wp_posts
        WHERE exists (SELECT 1 FROM temp where temp.tid = wp_posts.post_parent)
    

    【讨论】:

      猜你喜欢
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 2011-10-08
      • 2021-01-30
      • 1970-01-01
      相关资源
      最近更新 更多