Хотите на собесе рассказать как ускорили запрос в 60 раз?
Недавно впервые споткнулся об JIT в Postgresql:
Был обычный SELECT по партиционированной таблице на ~390млн строк, причем WHERE по индексам
Но на боевой базе жесть как тормозил
Конечно запустил EXPLAIN ANALYZE, а там JIT занимает 16 секунд (!) из 16.2
Видимо из-за фильтров/кастов/количества партиций планировщик насчитал огромную стоимость запроса, хотя на практике это не подтвердилось
Решается это супер просто - достаточно перед запросом прописать SET jit = off;
После этого запрос стал выполнятся за ~250ms
Кстати, можете интерактивно поизучать план этого запроса вот здесь (но я выкинул из плана 388 партиций из 390)
Post #52
1.51K

- 🔥 21
- 👍 5