Встречается на собеседованиях • сегодня
Что такое отложенная загрузка (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 (много запросов при обработке коллекций)
- Неожиданные запросы к БД могут возникнуть после закрытия сессии
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы