из этого индекса требуют чтения с диска
(read вызовы могут занимать достаточно много по времени и время скачет с миллисекунд до секунд)
Простое увеличение shared_beffers не дало особого эффекта (весь идекс в принципе не может поместиться в пямяти, и некоторые значения так или иначе всегда попадают в read блоки)
Пока не могу ничего придумать чтобы побороть переодические просадки запроса, может кто сталикивался?
Тем не менее, надо сделать так, чтобы читаемое помещалось в память, по-хорошему. Для этого либо уменьшать размер читаемого (более селективный индекс или index-only scan), либо увеличивать память — shared_buffers побольше и т.п.
трудно сказать, когда контекст неизвестен. Как вариант - использовать секционирование или, например, фильтрованый индекс покрывающий запрос (Covering Indexes)
Купить SSD и положыть на него этот индэкс.
Обсуждают сегодня