Есть база на PostgreSQL, приложение на Java. В базе данных около 10 таблиц, связанные между собой. Каждая таблица ежемесячно заполняется от 10к до 500к строками.
Насколько эффективно использование Hibernate в данном случае, если приходится очень часто делать запросы к данным за текущий месяц и за год в целом?
при чем тут Hibernate? это просто ORM, там внутри сидят те же sql-запросы, прекомпиляция селектов дает ту же скорость, быстродействие скорее зависит от кеша самого постгресса
+ смотря какие запросы, какие индексы.
Тут можно посоветовать либо прикрутить внешний поисковый движ, типа elasticsearch, либо поднять отдельную базу для аналитики (если это то, что нужно в данном случае) типа clickHouse. Но это если действительно большие данные. От 10k до 500k в месяц не выглядит очень уж быстрым ростом.
Если нужно заполнять такие таблицы из других источников, то jdbc с batch insert (без hibernate), можно в несколько потоков.
Если запросы на выборку достаточно сложные, то предпочитаю использовать stored procedures, которые возвращают курсор. А этот курсор уже можно обрабатывать через hibernate.