「ORDERBY」に使用する列のインデックスを作成すると、MySQLクエリへの応答がはるかに速くなることに気付きました。
SELECT username FROM table ORDER BY registration_date DESC
ここで、リクエスト時間を最適化するためにどのインデックスを作成する必要があるのか疑問に思っています。たとえば、私は次のクエリを頻繁に使用します。
SELECT username FROM table WHERE
registration_date > ".(time() - 10000)."
SELECT username FROM table WHERE
registration_date > ".(time() - 10000)."
&& status='active'
SELECT username FROM table WHERE
status='active'
SELECT username FROM table ORDER BY registration_date DESC
SELECT username FROM table WHERE
registration_date > ".(time() - 10000)."
&& status='active'
ORDER BY birth_date DESC
質問1: 最初の3つのリクエストタイプに個別のインデックスを設定する必要がありますか?(つまり、列「registration_date」の1つのインデックス、列「status」の1つのインデックス、および両方の組み合わせの別の列?)
質問2: 「WHERE」と「ORDERBY」には異なるインデックスが個別に使用されていますか?たとえば、「status」列と「registration_date」列の組み合わせインデックスと、「birth_date」列のみの別のインデックスがあるとします。3つの列(「status」、「registration_date」、「birth_date」)に別の結合インデックスを設定する必要がありますか?