分享

实战经验总结:数据从10万到100万数据崩溃是如何解决的

sstutu 2018-3-29 16:45:53 发表于 小知识点 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 6242
本帖最后由 pig2 于 2018-4-29 10:32 编辑



某系统,设计要求是每日10w交易,压力测试正常通过。

然后上线不到一周,某日突发行情,当天交易100W+,日终批量跑了两小时,显示进度10%…

开发商说超出设计需求太多,没办法…升级硬件也来不及了。

不死心,看代码:
[mw_shl_code=bash,true]SELECT col1
  FROM tab1
WHERE col2 NOT IN (
    SELECT col3
      FROM tab2
     WHERE …)[/mw_shl_code]
当天的tab1和tab2都是百万级纪录的…

拍案叫绝

改成
[mw_shl_code=bash,true]SELECT col1
  FROM tab1
  LEFT JOIN tab2 ON col2=col3
WHERE col3 IS NULL
   AND balabala[/mw_shl_code]
恢复重跑,一小时收工…


原因:
子查询耗费时间。尽量不用子查询
原文链接

欢迎加入about云群425860289432264021 ,云计算爱好者群,关注about云腾讯认证空间

已有(1)人评论

跳转到指定楼层
nice 发表于 2018-3-31 08:29:06
not in这种在应用生产系统10w级别的都不允许的,系统开销太大了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条