MYSQL优化,exists 替换 in,速度快了两三倍

我的A表,有180万行的数据;  B表只有15行的数据

 

 原先的查询脚本是这样的,如下:

可以看出,两张表都没有用到索引,而且where有个 in 的子查询,查询耗时是 29+9 = 38秒;

但是我做了两步,

第一, 优化脚本,用 exists 替换 in ;

第二,在A表中新建索引,

 

然后,结果如下:

 

我以前看过很多关于 exists 和 in 的用法,
都说:外大内小,用 in外小内大,用 exists

这在我这里,完全不适用,

我这里是外大内小,用 exists 反而更快了。
虽然我不知道这是怎么回事,但是,这让我意识到,不能一味的听信网上的那些用法。还是得自己去实践,去了解。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值