Как долгосрочно «кешировать» результаты в Postgres?
Создаете отдельную таблицу под кеш.Вместо вашего тяжелого запроса пишите:SELECT ... FROM cache_table;
 если получили пустой результат, делаете:  UPDATE cache_table SET ... FROM SELECT ... (тут ваш тяжелый запрос); SELECT ... FROM cache_table;На обновление исходных данных делаете триггер для очистки кеша:DELETE FROM cache_table WHETE ....
MW очень даже подходит, ящетаю