#python #django #memory #lazy-evaluation #django-queryset
#python #django #память #ленивая оценка #django-набор запросов
Вопрос:
У меня есть модель django, которая загружает относительно небольшие поля, а затем одно довольно большое. Давайте скажем что-то вроде этого:
class MyModel(models.Model):
thing = models.ForeignKey('Thing')
egg = models.TextField()
spoon = models.TextField()
race = models.FloatField()
big_field = models.TextField()
big_field требуется только в небольшом количестве функций, однако модель используется повсеместно. Как я могу избежать сохранения big_field в памяти? Это то, что делает ленивая оценка? Скажем, я каждый раз перебирал набор запросов, извлекая яйцо, приведет ли это к тому, что big_field также будет сохранен в памяти?
Спасибо
Комментарии:
1. Вы уверены, что big_field является проблемой? Вы провели сравнительный анализ использования памяти? Можете ли вы предоставить подробную информацию о том, как вы смогли доказать, что это вызывает проблемы? Можете ли вы уточнить, какие проблемы это вызывает? Медлительность? Сбой?
Ответ №1:
Вы можете заставить свои запросы извлекать только те поля, которые вы хотите, чтобы сэкономить память.