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")
Нужно ли использовать материализованное представление?
Что я могу сделать для улучшения скорости?