N+1 — ситуация, когда после одного запроса списка выполняется ещё по запросу для каждого элемента. Число обращений к БД растёт вместе с размером списка.
Что такое проблема N+1 в базе данных?
N+1 — ситуация, когда после одного запроса списка выполняется ещё по запросу для каждого элемента. Число обращений к БД растёт вместе с размером списка.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
N+1 — ситуация, когда после одного запроса списка выполняется ещё по запросу для каждого элемента. Число обращений к БД растёт вместе с размером списка.
Например, загрузили 100 заказов и отдельно запросили клиента для каждого: получилось 101 обращение. Используйте JOIN, пакетный WHERE IN или eager loading связей. Учитывайте размножение строк при JOIN и объём возвращаемых данных. Подтвердите проблему логом запросов и метриками, а не только временем отдельного SQL.