с секционированной таблицей в ПГ?
Например: Я создал секционированную таблицу, которая разбита по id через HASH. Для теста в ней около ~100 тыс записей, с несколькими полями. Создал ещё одну таблицу, в неё закинул 4 id, которые есть в первой таблице. Соединил их через INNER JOIN. Ожидал, что планировщик откинет те партиции, где явно нет id из второй таблицы. Но он сначала полностью сканирует все партиции, соединяет их и уже потом джойнит со второй. Я что-то упустил? Или это просто не поддерживается? Или вообще так не должно работать?
Так же если эти 4 id прописать вручную например через IN или ANY, то лишние партиции будут отброшены.
Покажите, не рассказывайте. ;) Т.е. \d+ таблиц, версию PostgreSQL, запрос(ы) и план(ы) (EXPLAIN (ANALYZE, BUFFERS)). Последние можно на https://explain.depesz.com/ А зачем Вам partitioning вообще (и, тем более, hash), кстати?
Обсуждают сегодня