Фильтр набора запросов Django чрезвычайно медленно, как улучшить скорость - PullRequest
0 голосов
/ 10 ноября 2019

Последние два дня я пытался оптимизировать этот набор запросов Django и не смог ускорить его. Мой бэкэнд - MYSQL.

Есть три таблицы: Книга, Книжный магазин и Категория. Книга имеет 1 миллион наблюдений, Книжный магазин имеет 500 наблюдений, а категория имеет 10 тысяч наблюдений

table = Book.objects.filter(Category=pk, bookstore__in=bookstore_objects).order_by('title').prefetch_related(Prefetch('bookstore', to_attr='bookstore_list'))[:50]

При первом запуске этого запроса в оболочке он занимает более 20 секунд, а затем - около 3-5 секунд. Пожалуйста, помогите мне ускорить этот запрос. Я не могу понять, почему это так медленно.

...