day-03

1.not in 和 not exists 比较

当查询表的大小相当时,以下三种查询方式通常是:

exists <= in <= JOIN

not exists<= not in <= LEFT JOIN

只有当表中字段允许NULL时,not in 才是最慢的,

not exists <=  LEFT JOIN <=  not in 

如果两张表,一张表大,一张表小。当子查询是大表时,就使用exists,子查询是小表时,使用in。

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

2.UNION 与 UNION ALL 的区别

当使用 UNION 时,MySQL 会把结果集中重复的记录删掉,而使用 UNION ALL ,MySQL 会把所有的记录返回,且效率高于 UNION。

原文地址:https://www.cnblogs.com/XiDaPuBen/p/11238246.html