Настройка производительности в Spring Boot — это в основном про границу с базой данных: connection pooling, кэширование и устранение проблемы N+1. Сначала измеряйте (метрики Micrometer + Actuator), затем атакуйте наибольшую стоимость.
Проблема N+1 — убийца JPA номер один
Ленивые ассоциации выдают один запрос на каждого родителя, затем ещё один на каждый доступ к потомку:
List<Order> orders = orderRepo.findAll();
(Order o : orders) {
o.getItems().size();
}
