https://dbfiddle.uk/?rdbms=postgres_11&fiddle=9965f820597a018339e9acd09cda4b44 на такой выдаче seq scan Реальность оказалась куда интереснее и не предсказуемее: Bitmap Heap ...
Кто нибудь задавался вопросом использует ли посгтрес индексы с частичным совпадением условия? Вроде: CREATE INDEX a_idx ON a USING btree (id) include (a,b,c) WHERE a>0 or b>0 ...
Поставить больше оперативки не вариант? Ведь когда за дело возьмется другой админ или вы через пару лет все ваши костыли рассыпятся
почему 1М? в А находится 1М, в B находится 1М-1 для каждого А, а вот в С лежат данные только для первых 100к А
vacuum full вместо этого подойдет? Если да то после 19 часов. Иначе админа запрягать придется
у кого-нибудь на постгресе 11.3 строки из-за exists множились?
Вы бд для продакшина настраиваете?
А что за приложение убивается OOM киллером? И зачем ему в пике 60 конектов к базе выяснили уже?
У вас бд свопится?
Может уже можно запустить его? service start postgresql