Django: Медленный набор запросов для получения порядка, в котором указанные теги в основном включены

Я хотел бы получить так называемые похожие посты, но по какой-то причине следующий набор запросов По какой-то причине следующий набор запросов занимает много времени. (500-1000ms)

Ниже мы пытаемся отфильтровать теги, связанные с определенным объектом, и получить статьи в порядке убывания количества включенных тегов.

Удаление annotate и order_by повышает скорость, но все равно занимает около 200ms.

tag_pks = Video.objects.get(pk=video_pk).tags.values_list("pk")

Video.objects.annotate(n=Count("pk"))
.exclude(pk=video_pk)
.filter(tags__in=tag_pks)
.order_by("-n")

Нужно ли использовать материализованное представление?

Что я могу сделать для улучшения скорости?

Вернуться на верх