Использование Django/Postgres для хранения двоичных данных с экономией памяти

Context

У меня есть проект Django, и внутри этого проекта у меня есть модель базы данных с полем типа models.BinaryField(max_length=50000000, default=b'0')

Проблема

Когда серверу предлагается запросить эти двоичные данные, даже при том, что никогда не бывает более 1-2 одновременных запросов, я достигаю предела оперативной памяти моего сервера, используя io.BytesIO, наряду с stream.seek({index}) и stream.close() (я использую термин stream очень свободно, поскольку здесь я просто имею в виду поиск и закрытие потока байт).

Вопрос

Возможно ли, что мне нужно по-другому реализовать способ хранения этих двоичных данных?

Решения, которые я пробовал и которые не сработали

Может ли разделение на фрагменты меньшего размера быть более эффективным для оперативной памяти сервера? Когда я попытался сделать это, я обнаружил, что разбиение файла на более мелкие фрагменты и связывание их отношениями many-to-one было чрезвычайно обременительным с точки зрения накладных расходов на базу данных.

Вернуться на верх