不要迷信union all 就比 or及in 快,要結合實際情況分析到底使用哪種情況。
對於索引列來最好使用union all,因復雜的查詢【包含運算等】將使or、in放棄索引而全表掃描,除非你能確定or、in會使用索引
對於只有非索引字段來說你就老老實實的用or 或者in,因為 非索引字段本來要全表掃描而union all 只成倍增加表掃描的次數
對於既有索引字段【索引字段有效】又包含非索引字段來時,按理你也使用or 、in或者union all 都可以,
但是我推薦使用or、in。
以上主要針對的是單表,而多表聯合查詢來說,考慮的地方就比較多了,比如連接方式,查詢表數據量分布、索引等,再結合單表的策略選擇合適的關鍵字