爲什麼在UNION關鍵字查詢中運行非常慢的mysql?用UNION關鍵字查詢在mysql中運行速度非常慢
我已經使用UNION關鍵字創建了一個查詢,但每次執行它時,顯示輸出都需要很長時間。
這是我使用的查詢。
SELECT process_trained AS Training_Title,
org_party AS Organizing_Party,
duration AS Duration,
Concat(Date_format(sptrain_from, '%d-%b-%y'), " to ",
Date_format(sptrain_to, '%d-%b-%y'), "") AS SpecialTraining_Date,
trainor AS Trainor,
category AS Category,
training_type AS Training_Type,
train_id,
Date_format(cert_date, '%d-%b-%Y') AS Date_Certified,
Date_format(re_certdate, '%d-%b-%Y') AS Re_Certificaton,
remarks,
filename
FROM(SELECT *,
cert_date AS cdate
FROM tbldirtraining
UNION ALL
SELECT *,
sptrain_from
FROM tbldirtraining) jes
WHERE emp_id = '6555'
AND cdate <> ''
ORDER BY cdate;
是否有任何可能的方法可以幫助如何更快地運行此查詢。
在此先感謝。
你能告訴執行計劃? –
'tbldirtraining'中有多少行?另外,你爲什麼要把桌子與自己結合起來? – Sebas
@Sebas ...總而言之,在tbldirtraining中有2053行,正如你所看到的,上面的查詢我使用了WHERE子句來指定查詢顯示的訓練細節。所以身份證號碼6555必須顯示13行,因爲他有13次訓練,但是每次使用UNION或UNION ALL時,結果都是重複的行,所以不是13而是13,它變成了26,這就是爲什麼我把條件'WHERE cdate <>'' '其中cdate是我用於兩個聯合行的ALIAS。我將一個列合併到一個表中,這些列是日期列,並且它們必須同時排序。 –