次のようなSQLがあります。これは、4つのテーブルを結合し、最初のテーブルの「ステータス」列で結果を並べ替えます。
SELECT *
FROM a, b, c, d
WHERE b.aid=a.id AND c.id=a.cid AND a.did=d.id AND a.did='XXX'
ORDER BY a.status
できます。しかし、それは遅いです。これは、ORDER BY句があり、テーブル「a」にインデックスがないためです。
4つのテーブルすべてで、「id」列にPRIMARYKEYが設定されています。
したがって、「ステータス」列を含むインデックスをテーブルaに追加する必要があることはわかっていますが、他に何を含める必要がありますか?「bid」、「cid」、「did」もそこにあるべきですか?
私はこれを一般的なSQLの意味で尋ねようとしましたが、重要な場合、ターゲットはGearsで使用するSQLiteです。
前もって感謝します、
ジェイク(noob)