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

Что такое отложенная загрузка (lazy loading) в ORM

Отложенная загрузка (lazy loading) — это стратегия загрузки данных в ORM, при которой связанные объекты загружаются только при первом обращении к ним, а не сразу при загрузке основного объекта. Это позволяет оптимизировать производительность, избегая лишних запросов к БД.

Пример в SQLAlchemy:

python
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    posts = relationship("Post", lazy='select')  # lazy loading по умолчанию

class Post(Base):
tablename = 'posts'
id = Column(Integer, primary_key=True)

При обращении к постам пользователя будет выполнен отдельный запрос

user = session.query(User).first()
print(user.posts) # Здесь выполнится SELECT * FROM posts WHERE user_id=?

text

Плюсы:
- Экономия ресурсов, если связанные данные не нужны
- Удобство работы с объектами

Минусы:
- Проблема N+1 (много запросов при обработке коллекций)
- Неожиданные запросы к БД могут возникнуть после закрытия сессии
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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