L'ottimizzazione delle prestazioni in Spring Boot riguarda per lo più il confine con il database: connection pooling, caching ed eliminazione del problema delle query N+1. Misura prima (metriche Micrometer + Actuator), poi attacca il costo maggiore.
Il problema N+1 — il killer numero uno di JPA
Le associazioni lazy emettono una query per parent, poi una ulteriore per ogni accesso al figlio:
List<Order> orders = orderRepo.findAll();
(Order o : orders) {
o.getItems().size();
}
