應(yīng)用報錯,臨時表空間已滿,跑數(shù)據(jù)中斷。
成都創(chuàng)新互聯(lián)公司專注于江海企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),電子商務(wù)商城網(wǎng)站建設(shè)。江海網(wǎng)站建設(shè)公司,為江海等地區(qū)提供建站服務(wù)。全流程按需定制,專業(yè)設(shè)計,全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
查看了什么sql語句引起的,發(fā)現(xiàn)
select count(1)*********union***;
遍歷了兩個千萬級別的表,占了5G左右的臨時表空間,把union 換成union all后,這條語句的花費(fèi)減小了幾十倍。
那么union和union all有什么區(qū)別呢?
Union:對兩個結(jié)果集進(jìn)行并集操作,不包括重復(fù)行,同時進(jìn)行默認(rèn)規(guī)則的排序;
Union All:對兩個結(jié)果集進(jìn)行并集操作,包括重復(fù)行,不進(jìn)行排序;
union消耗的資源比union all多很多,因?yàn)?,需要去掉重?fù)行,還需要排序。