Я понял, что ответ на запрос MySQL становится намного быстрее при создании индекса для столбца, который вы используете для «ORDER BY», например.
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: Должен ли я настроить отдельные индексы для первых трех типов запросов? (т. е. один индекс для столбца «дата регистрации _», один индекс для столбца «статус» и еще один столбец для комбинации обоих?)
Вопрос 2: Используются ли разные индексы независимо для «ГДЕ» и для «ЗАКАЗАТЬ ПО»? Сказать,У меня есть комбинированный индекс для столбцов «статус» и «дата регистрации _», и еще один индекс только для столбца «дата рождения _». Должен ли я установить другой комбинированный индекс для трех столбцов («статус», «дата регистрации _» и «дата рождения _» )?