Встречается на собеседованиях • сегодня

Что является N и SELECT в N+1 SELECT

N+1 SELECT — это проблема производительности, когда для получения связанных сущностей выполняется 1 запрос для основной коллекции и N запросов для каждой связанной сущности. **Пример:** ```java @Entity public class Author { @OneToMany(mappedBy = "author") private List books; } // Проблема N+1: List authors = entityManager.createQuery("SELECT a FROM Author a", Author.class).getResultList(); for (Author a : authors) { a.getBooks().size(); // Для каждого автора выполняется отдельный SELECT для книг } ``` **Решение:** - **JOIN FETCH** в JPQL/HQL: ```sql SELECT a FROM Author a JOIN FETCH a.books ``` - **@EntityGraph** в Spring Data JPA. - **Batch fetching** (например, `@BatchSize`). N — количество элементов основной коллекции, SELECT — дополнительные запросы для ленивой загрузки.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы