Django: Поиск OR со значением поля модели и значением поля m2m этой модели выполняется медленно

Django: Требуется много времени для фильтрации m2m-модели от m2m-связанной модели путем указания значений полей m2m-модели

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

Как уменьшить количество бесполезных INNER JOIN, как показано в ответе на вопрос выше?

Video.filter(Q(title__icontains='word') | Q(tags__name__icontains='word')).order_by('-published_at')

Запрос выдан

SELECT "videos_video"."id"
FROM "videos_video"
LEFT OUTER JOIN "videos_video_tags" ON ("videos_video"."id" = "videos_video_tags"."video_id")
LEFT OUTER JOIN "videos_tag" ON ("videos_video_tags"."tag_id" = "videos_tag"."id")
WHERE (UPPER("videos_video"."title"::text) LIKE UPPER('%word%') OR UPPER("videos_tag"."name"::text) LIKE UPPER('%word%'))
ORDER BY "videos_video"."published_at" DESC;

EXPLAIN(ANALYZE, VERBOSE, BUFFERS)

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