N+1 возникает, когда сначала загружается список из N объектов, а затем для каждого выполняется отдельный запрос к связанным данным. Вместо небольшого числа запросов получается 1 + N.
Что такое проблема N+1 в ORM?
N+1 возникает, когда сначала загружается список из N объектов, а затем для каждого выполняется отдельный запрос к связанным данным. Вместо небольшого числа запросов получается 1 + N.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
N+1 возникает, когда сначала загружается список из N объектов, а затем для каждого выполняется отдельный запрос к связанным данным. Вместо небольшого числа запросов получается 1 + N.
Используют пакетную загрузку связей, eager loading, JOIN или отдельный агрегирующий запрос по задаче. Число запросов проверяют логированием и профилировщиком. Не нужно загружать все связи заранее: это может создать чрезмерный JOIN, дубли и расход памяти.