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"))
Вернуться на верх