今天創建視圖的時候,sql語句為 select * from (select a from A union select b from B ) as C,但是查詢1000條數據,居然花了45s的時間,於是查詢了資料,資料顯示:
UNION 因為會將各查詢子集的記錄做比較,故比起UNION ALL ,通常速度都會慢上許多。一般來說,如果使用UNION ALL能滿足要求的話,務必使用UNION ALL。
而我的A表和B表不可能有重復數據,於是換成select * from (select a from A union all select b from B ) as C,時間縮短到 了1s以內,長見識了。以前只知道union和union all的用法
而不知道它們的使用,居然對sql的效率影響如此之大。