【MYSQL】 exist 与 in 的性能比较
没有亲自做过试验,是从网上看帖子得到的结论。记录一下
先说结论
子表数据量比外表数据量少,使用in。
子表数据量比外表数据量大,使用exists。
子表与外表数据量大小差不多,用in与exists的效率相差不大。
无论那个表大,用not exists都比not in要快。
再来分析(引用一些结论)
mysql中的in语句是把外表和内表作hash 连接,而exists语句是对外表作loop循环,每次loop循环再对内表进行查询。
没有亲自做过试验,是从网上看帖子得到的结论。记录一下
子表数据量比外表数据量少,使用in。
子表数据量比外表数据量大,使用exists。
子表与外表数据量大小差不多,用in与exists的效率相差不大。
无论那个表大,用not exists都比not in要快。
mysql中的in语句是把外表和内表作hash 连接,而exists语句是对外表作loop循环,每次loop循环再对内表进行查询。