Django: При выполнении фильтра со значениями m2m запрос выполняется очень долго
В БД около 300 000 строк данных, и при выполнении фильтра с m2m-значениями на выполнение запроса уходит очень много времени.
Как можно сделать это быстрее? Также, лучше ли использовать сырой SQL для m2m?
# models.py
class Tag(models.Model):
name = models.CharField(unique=True, max_length=100)
class Video(models.Model):
title = models.CharField(max_length=300)
tags = models.ManyToManyField(Tag, blank=True)
# all slow query (2-3seconds)
Video.objects.filter(tags__in=tags)
Video.objects.filter(tags__name='tag_name')
Tag.objects.annotate(count=Count("Video"))