我的A表,有180万行的数据; B表只有15行的数据
原先的查询脚本是这样的,如下:
可以看出,两张表都没有用到索引,而且where有个 in 的子查询,查询耗时是 29+9 = 38秒;
但是我做了两步,
第一, 优化脚本,用 exists 替换 in ;
第二,在A表中新建索引,
然后,结果如下:
我以前看过很多关于 exists 和 in 的用法,
都说:外大内小,用 in ; 外小内大,用 exists;
这在我这里,完全不适用,
我这里是外大内小,用 exists 反而更快了。
虽然我不知道这是怎么回事,但是,这让我意识到,不能一味的听信网上的那些用法。还是得自己去实践,去了解。