Django: Поиск OR со значением поля модели и значением поля 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)