2016-03-21 27 views
-1
SELECT ANO_LECTIVO,XCANDS.CURSO, MIN(MEDIA) 
FROM XCANDS, XALUS 
WHERE XCANDS.BI = XALUS.BI 
AND XCANDS.CURSO = XALUS.CURSO -- UM ALUNO PODE SER CANDIDATAR A VARIOS CURSOS 
GROUP BY ANO_LECTIVO, XCANDS.CURSO 
HAVING MIN(MEDIA)>0; 

我選擇了表格中每個課程的最低成績,意識到學生註冊了該課程。我無法找到如何分析此查詢的影響以及如何改進此查詢。我的表有這樣的參數:我將如何分析此查詢的執行計劃?它會幫助創建任何索引?

Table Cands

Table Alus

+0

請不要張貼圖片,將這些表格的實際模式定義作爲文本發佈,然後人們可以使用它 – RiggsFolly

+0

[The EXPLAIN動詞的MYSQL手冊](http ://dev.mysql.com/doc/refman/5.7/en/explain.html) – RiggsFolly

回答

0

對於MySQL,您可以執行計劃使用EXPLAIN(或EXPLAIN EXTENDED)看到。

只需將EXPLAIN關鍵字添加到您的SELECT語句的開頭,然後運行它。

EXPLAIN SELECT ... 

您的查詢可能從索引中受益:

ON XCNADS (ano_lectivo, curso, media, bi) 

我們會與指數可用,查詢將利用它,並期望從Extra列預計EXPLAIN輸出將顯示「使用索引」(因爲這是一個「覆蓋索引」),並且不顯示「使用filesort」(因爲GROUP BY可以在不進行排序的情況下從索引中滿足)。 )