Mysql总是通过创建和填充临时表的方式来执行union查询,导致很多优化策略不能在union中采取。
除非确实需要服务器消除重复的行,否则就一定要使用 union all。如果没有 all 关键字,mysql会给临时表加上distinct 选项,
这会导致对整个临时表的数据做唯一性检查。即使有All关键字,mysql也会采用临时表存储结果。