Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
4
Повышение скорости запроса в социальной сети
Компании, где спрашивали:
Страна Девелопмент
Условие задачи
Предложите варианты ускорения работы запроса, не меняя бизнес‑логику соц‑платформы, где при большом количестве лайков у публикации растёт время загрузки страницы.
В системе заданы модели для хранения данных:
class Post(Base):
id: Mapped[int]
name: Mapped[str]
class Like(Base):
id: Mapped[int]
user_id: Mapped[int]
Текущий вариант запроса, который выводит пост вместе с числом лайков, использует подзапрос:
select *, (select count(*) from like where like.post_id = post.i
where post.id = :id
Опишите, какие приёмы (индексация, изменение структуры запроса, кэширование и т.д.) можно применить, чтобы сократить время выполнения, сохранив прежнее поведение приложения.