美文网首页
生产环境一个join,产生笛卡儿积,回滚日志剧增

生产环境一个join,产生笛卡儿积,回滚日志剧增

作者: frankie_cheung | 来源:发表于2021-08-19 16:47 被阅读0次

    场景

    晚上同事告诉我 一个普通的SQL跑了很久,是不是锁住了,我登陆上去kill mysql线程
    发现无法kill,事务状态为 rolling back状态,然后平时十几兆的undolog 突然变成了十多G

    原因

    sql在join的时候 on的条件写错了,导致笛卡儿积。

    sql如下

    insert into c select * from a inner join b on a.id=a.id

    本来应该是a.id=b.id,但是他复制错了,直接导致笛卡儿积

    a表有140万,b表有700多,笛卡儿积直接140万*700,大约7亿条数据

    一个insert 语句 一个事务,7亿数据 肯定会有问题。

    解决

    等待回滚,应该回滚了一晚上。。。

    相关文章

      网友评论

          本文标题:生产环境一个join,产生笛卡儿积,回滚日志剧增

          本文链接:https://www.haomeiwen.com/subject/dwkabltx.html