VPS - это просто сервер, на котором нет ничего, кроме голой операционной системы. Настраивать придётся всё самому. Разница с домашним вариантом в том, что это сервер с высокими гарантиями бесперебойной работы. В ДЦ не отключат свет, не вырубят интернет, не сгорит блок питания и т.д. и т.п.
Во-первых, для node.js тоже есть ORM, не обязательно писать запросы на чистом SQL. Во-вторых, можно получить из курсора обычный плоский результат join'а, а потом в коде простой функцией конвертировать его в иерархию, не делая дополнительных запросов.
Вы, видимо, пришли из мира PHP, где на каждый запрос загружается скрипт, завершающийся после обработки этого запроса. С Django это не так, проект загружается один раз и бесконечно обрабатывает запросы, как сервер.
Ivan Palamarchuk: если select и insert в одной транзакции, никакого окна быть не может. Таблица блокируется на изменение для всех до конца транзакции. Под большой нагрузкой это, правда, приведёт к снижению скорости. Но другого выхода просто нет.
Антон: стараться чтобы выборка по конкретному пользователю не была слишком большой. Или, если количество пользователей небольшое, а считать надо все данные, то можно построить частичные индексы и выбирать reltuples для них.