[имя] спрашивает, почему составной индекс может не использоваться или не ускорять запрос, и какие типы индексов знаете, когда применять GIN?

Составной индекс может быть невыгоден из-за порядка полей, низкой селективности, несовпадения выражений или устаревшей статистики. GIN подходит для поиска по составным значениям.

Короткий ответ

Что ответить на собеседовании

Составной индекс может быть невыгоден из-за порядка полей, низкой селективности, несовпадения выражений или устаревшей статистики. GIN подходит для поиска по составным значениям.

Подробный разбор

Ответ с пояснениями

Составной индекс может быть невыгоден из-за порядка полей, низкой селективности, несовпадения выражений или устаревшей статистики. GIN подходит для поиска по составным значениям.

Начните с плана выполнения и реального распределения данных. B-tree полезен для равенства, диапазонов и сортировки; условия по ведущим колонкам обычно лучше ограничивают чтение составного индекса. Но отсутствие ведущей колонки не означает безусловный запрет его использования.

GIN индексирует элементы массивов, лексемы полнотекстового поиска и поддерживаемые операции над JSONB. Он ускоряет соответствующие операторы, но увеличивает стоимость записи. Также существуют Hash для равенства, GiST/SP-GiST для специализированных поисков и BRIN для больших физически упорядоченных данных. Выбор зависит от operator class и запросов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее