• IN:当在两表查询的时候, 主表是大表(数据量多),子查询表是表(数据量少),这时,使用IN关键词进行匹配查询效率高;
  • EXISTS:当在两表查询的时候, 主表是小表(数据量少),子查询表是大表(数据量多),这时,使用EXISTS关键词进行匹配查询效率高;

注意1:in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。

  • not in 和 not exists 区别:

如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;
而not extsts 的子查询依然能用到表上的索引。
所以无论那个表大,用not exists都比not in要快。

posted on 2021-11-26 12:27  菜鸟小辛  阅读(319)  评论(0编辑  收藏  举报