UNION ALL替换UNION性能更高.后者需要检查重复数据量大的情况下group by性能更高,distinct需要读取所有列数据去重复,分组则不用.另外:数据量大,使用exists,而不是in.后者会对子查询中的表进行全表扫描,not in会执行一个内部的排序和合并,而前者只是检查存在性返回boolean.避免使用'*'符号,因为会去获取所有列信息然后依次转化为所有的列名.