mysql 之 exist 和in 的区别

 

其实in和exist两者对数据遍历的次数是一样的,只不过是连接次数不一样。假如A表有100个记录,B表有10000个记录,如果用in来查询,则需要遍历整个B,每次都要与A建立一次连接,总共要10000次连接;如果用exist,那么需要遍历A,再来与B连接,这样只需要建立100次连接。因为连接是比较耗费时间的,根据小表驱动大表的原则,这时候用exist性能比较高

即:in先走子查询。exist 先走主查询。如果子查询结果比主查询大的话?b 优先用exist

posted @ 2020-09-12 09:29  xie风细雨  阅读(456)  评论(0)    收藏  举报