การจูนประสิทธิภาพใน Spring Boot ส่วนใหญ่เกี่ยวกับขอบเขตของฐานข้อมูล: connection pooling, caching และการกำจัดปัญหา N+1 query วัดผลก่อน (metric ของ Micrometer + Actuator) แล้วจึงจัดการต้นทุนที่ใหญ่ที่สุด
ปัญหา N+1 — เพชฌฆาตอันดับหนึ่งของ JPA
lazy association ยิง query หนึ่งครั้งต่อ parent แล้วยิง เพิ่ม อีกหนึ่งครั้งต่อการเข้าถึง child แต่ละครั้ง:
List<Order> orders = orderRepo.findAll();
(Order o : orders) {
o.getItems().size();
}
