В моем коде у меня есть несколько запросов, которые вообще не масштабируются.
Например, взгляните на этот код:
class OrderQuerySet(query.QuerySet):
def for_day(self, day: date):
""" Return all orders that concerns the given service day """
day_order_pks = [order.pk for order in self.all()
if localdate(order.service.start) == day]
return self.filter(pk__in=day_order_pks)
В начале это прекрасноработал.Проблема заключается в том, что при увеличении суммы заказа производительность, по-видимому, уменьшается линейным образом, что имеет смысл, поскольку все заказы необходимо проверять каждый раз.Имея 1000 новых заказов каждый день, очевидно, что моя система больше не будет использоваться через некоторое время!
Обычно, как вы решаете подобные проблемы в Django?
Я имею в виду,иногда я могу найти способ написать лучший запрос, используя только Django ORM.Но иногда, чтобы получить то, что я хочу, я, кажется, вынужден создавать свой набор запросов таким образом, используя Python и цикл for.