comment varchar, по которой построен триграмный GIN индекс (для поиска по маске %%). Так же есть индекс на некий ключ(не уникальный но довольно селективный). При запросе SELECT * FROM TABLE WHERE KEY = XXX AND COMMENT ILIKE '%wazzap%' , ПГ выбирает план из двух BITMAP index scan и операцией AND. Проблемы в том что индекс триграммный гигантский (200ГБ), а ПГ считает, что сходить извлечь из него пару сотен строк это легко, однако в реале это оборачивается в десятки минут. Если просто удалить\отключить GIN индекс, то ПГ просто отбирает значения по первому условию (KEY, пара тысяч строк)- наклдывает фильтр и вуаля. Результат за миллисекунды. Статистика обновлена. Как постгресу сказать что поход в 200ГБ GIN - дорого?
А добавь поле key в gin индекс? Или это только rum умеет, не помню уже.
А план можете показать?
Обсуждают сегодня