Вопрос объясняет принципы выбора столбцов для индексации.
Индексы нужны для:
Столбцов с высокой селективностью (уникальные или почти уникальные значения).
Составных индексов под частые условия WHERE (порядок столбцов важен!).
Критерии:
Селективность:
Хорошо: user_id (много уникальных значений).
Плохо: gender (мало вариантов).
Составные индексы:
Создавайте для запросов с несколькими условиями:
CREATE INDEX idx_profile_region ON profiles(region_id, status);Порядок столбцов должен соответствовать порядку в WHERE.
Использование в JOIN:
Индексируйте внешние ключи.
Когда не индексировать:
Часто обновляемые столбцы.
Маленькие таблицы (<10k записей).