Встречается на 2% собеседований по Python
Что такое отложенная загрузка (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
интервью вопросы и ответы