Как индексы влияют на производительность JPA запросов?

Middle
268 просмотров
AFK Offer AI

JPA не создаёт индексы автоматически (кроме PK и FK). @Index в @Table(indexes=...) — Hibernate создаёт индекс при ddl-auto=create/update. В продакшене индексы через миграции (Flyway/Liquibase). Для JPA запросов: поля в WHERE, ORDER BY, JOIN условиях — кандидаты на индексы. Проблема: @OneToMany с большими коллекциями без индекса по FK = full scan. N+1 проблема с индексом — каждый из N запросов быстрее, но N запросов всё равно. Composite indexes для запросов с несколькими условиями.

Следующий вопрос

Реализуйте иммутабельный класс с мутабельным полем (defensive copy)