Задать вопрос
@happyjedi

Нужно ли делать индекс в БД по столбцу, по которому идет сортировка ORDER_BY?

Есть следующий регулярно выполняемый запрос:
SELECT "f_attributes".* FROM "f_attributes" WHERE "f_attributes"."type" IN ('FHeatType') AND (visible = 't')  ORDER BY "f_attributes"."title" ASC


Хочу добавить индексацию в БД. Думаю сделать составной индекс по столбцу type и visible(порядок столбцов тут вроде не важен). Но возник вопрос, разъяснений к которому сам не нашел, или не понял суть теории.
Нужно ли(полезно ли) добавлять индекс по столбцу title, по которому происходит сортировка ORDER BY ? И должен ли он быть отдельным индексом или входить в составной?
И вопрос к Rails разработчикам, нужно ли как то вручную обновлять индексы (БД PostgreSQL), или это происходит автоматически?
  • Вопрос задан
  • 374 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    Мидл Python-разработчик
    6 месяцев
    Далее
Решения вопроса 1
Finesse
@Finesse
Лучше сделать title отдельным индексом
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mastedm
@mastedm
У Postgres есть профилировщик запросов EXPLAIN (ANALYZE). Ему можно скормить запрос и посмотреть план выполнения запроса. По нему будет понятно, используются ли индексы. Бывают ситуации, когда Postgres не использует существующий индекс, либо из двух индексов использует только один.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы