Следует ли использовать/создавать как можно больше индексов в MySQL?

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

0
задан R_User 27 July 2012 в 15:48
поделиться