@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), или это происходит автоматически?
  • Вопрос задан
  • 365 просмотров
Решения вопроса 1
Finesse
@Finesse
Лучше сделать title отдельным индексом
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mastedm
@mastedm
У Postgres есть профилировщик запросов EXPLAIN (ANALYZE). Ему можно скормить запрос и посмотреть план выполнения запроса. По нему будет понятно, используются ли индексы. Бывают ситуации, когда Postgres не использует существующий индекс, либо из двух индексов использует только один.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы