Что такое проблема N+1 в базе данных?

N+1 — ситуация, когда после одного запроса списка выполняется ещё по запросу для каждого элемента. Число обращений к БД растёт вместе с размером списка.

Короткий ответ

Что ответить на собеседовании

N+1 — ситуация, когда после одного запроса списка выполняется ещё по запросу для каждого элемента. Число обращений к БД растёт вместе с размером списка.

Подробный разбор

Ответ с пояснениями

N+1 — ситуация, когда после одного запроса списка выполняется ещё по запросу для каждого элемента. Число обращений к БД растёт вместе с размером списка.

Например, загрузили 100 заказов и отдельно запросили клиента для каждого: получилось 101 обращение. Используйте JOIN, пакетный WHERE IN или eager loading связей. Учитывайте размножение строк при JOIN и объём возвращаемых данных. Подтвердите проблему логом запросов и метриками, а не только временем отдельного SQL.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее