Как правильно использовать Django defer() при CONCAT в большом текстовом поле
У меня есть текстовое поле с большим количеством данных (>400000 строк текста). Я думаю, что это причина того, что мой сервер иногда внезапно отказывает в обслуживании, когда многие пользователи добавляют новые строки текста. Я использую пока
Item.objects.filter(pk=iitem.pk).update(html=Concat("html", Value(msg)))
для добавления нового сообщения. Но я думаю, что проблема в том, что перед этим мне нужно проверить некоторые другие поля iitem
, поэтому я делаю
.
iitem = IMPALitem.objects.get(pk=p["iibox"])
.
Правильно ли я понимаю, что в этом случае все данные (40MB) излишне загружаются из БД (postgres) в память?
Является ли изменение get
на
iitem = IMPALitem.objects.get(pk=p["iibox"]).defer("html")
все, что мне нужно сделать? (Должен ли defer()
идти слева/спереди от get()
?)?