このクエリは異なるものがたくさんあります。このクエリに設定するインデックスは何ですか?
- が選択
- これらの列が異なるテーブルからある特定の列のみを
- 持つ連結/
- が
- が をグループ化加入数/ケース
SELECT st.id AS stid,
st.category,
st.maxsubscriptions,
CONCAT (
st.category,
' (',
COUNT(CASE
WHEN gs.id_subtournament = st.id
THEN 1
ELSE NULL
END),
'/',
st.maxsubscriptions,
')'
) AS ststring
FROM de_subtournaments AS st
LEFT JOIN de_gamers AS gs ON st.id = gs.id_subtournament
WHERE st.type = 0
AND st.id_tournament = '6'
GROUP BY st.id
このクエリのインデックスはどのように見えるのですか?
あなたがそれによってフィルタリングしたり、それに参加し、それをインデックスを検討しようとしている場合。 – JNevill
私はst.id、gs.id_subtournament、st.type + st.id_tournamentのそれぞれに1つのインデックスを作成する必要がありますか?合計で3つのインデックスがあります。そうですか? – sharkyenergy
'st.id'のインデックスは使用されません。 'JOINing'を実行すると、どの表が最初にあるかを知ることができます.2番目の表には索引が必要です。 'LEFT'は通常、テーブルに命令を強制します。 –