Spring Boot 中的性能调优主要围绕数据库边界:连接池、缓存,以及消灭 N+1 查询问题。先测量(Micrometer + Actuator 指标),再攻击最大的成本项。
N+1 问题——头号 JPA 杀手
懒加载关联会对每个 parent 发一次查询,然后每次访问 child 时再发一次:
java
List<Order> orders = orderRepo.findAll(); // 1 次查询
for (Order o : orders) {
o.getItems().size(); // N 次额外查询——每个 order 一次(即"N+1")
}
用单次 join 一次性取回关联来修复它:
