Podešavanje performansi u Spring Bootu uglavnom se svodi na granicu prema bazi: connection pooling, cachiranje i eliminaciju N+1 problema upita. Prvo mjerite (Micrometer + Actuator metrike), zatim napadnite najveći trošak.
N+1 problem — ubojica JPA-a broj jedan
Lazy asocijacije šalju jedan upit po roditelju, a zatim još jedan po pristupu djetetu:
List<Order> orders = orderRepo.findAll();
(Order o : orders) {
o.getItems().size();
}
