El ajuste de rendimiento en Spring Boot va sobre todo del límite con la base de datos: connection pooling, caching y acabar con el problema de consultas N+1. Mide primero (métricas de Micrometer + Actuator) y luego ataca el mayor coste.
El problema N+1 — el asesino número uno de JPA
Las asociaciones lazy lanzan una consulta por padre y luego una más por cada acceso a un hijo:
List<Order> orders = orderRepo.findAll();
(Order o : orders) {
o.getItems().size();
}
