Проблема производительности Django с исключением

55
7

У меня есть модель word и phrase модель

class Word(models.Model): 
checked = models.BooleanField(default=False)

class Phrase(models.Model):
words = models.ManyToManyField(Word, null=True,related_name = "phrases")

Word модель имеет атрибут checked и много-много ссылок на phrase

У меня есть запрос, что-то вроде этого:

Phrase.objects.exclude(words__checked=True).filter(words__group__pk__in = groups_ids)

Но он работает очень медленно на больших наборах данных, и проблема заключается в исключении, потому что без него - он работает достаточно быстро. Поэтому я нашел предложение, что я должен использовать raw sql здесь, проблема с производительностью с django exclude

Итак, как можно переписать это предложение с помощью raw sql?

(Мне нужен этот запрос как для работы postgres, так и для mysql из-за требований, или мне понадобятся два запроса, если один запрос не сможет этого достичь, запрос postgres имеет более высокий приоритет)

До сих пор я пытался использовать синтаксис.extra, но это не сработало, поэтому просим его здесь.

спросил(а) 2018-08-08T22:09:00+03:00 1 год, 11 месяцев назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема