Spring Boot のパフォーマンスチューニングは、ほとんどがデータベースの境界に関するものです: コネクションプーリング、キャッシュ、そして N+1 クエリ問題の撲滅です。まず計測し (Micrometer + Actuator メトリクス)、それから最大のコストを攻めます。
N+1 問題 — JPA の最大の殺し屋
遅延関連は親ごとに 1 クエリ、そして子アクセスごとにさらに もう 1 クエリを発行します:
java
List<Order> orders = orderRepo.findAll(); // 1 query
for (Order o : orders) {
o.getItems().size(); // N extra queries — one PER order (the "N+1")
}
単一の join で関連を取得して修正します:
