Небольшие объекты (которые 500Kb) квалифицируются как будут работать хорошо, как bytea.Основное ограничение по размеру заключается в том, что вам нужно будет материализовать все поле в памяти сначала на сервере, а затем на клиенте (есть способы его обойти, но они ограничены).Для половины мегабайта это не должно быть проблемой, но если вы начнете хранить гораздо большие объекты, это может потребовать некоторого рассмотрения.
Сохранение его в файловой системе и сохранение местоположения (или сохранение его с помощью суррогата)первичный ключ из последовательности SERIAL) - хороший способ справиться с большими файлами, и вы, конечно, можете применить его и здесь.Недостатком является то, что вы теряете целостность транзакций (вы не можете быть уверены, что и файловая система, и база данных были обновлены, поэтому вам нужно внедрить какой-то инструмент проверки для регулярного запуска, чтобы сравнить их), и, возможно, что еще важнее, вы можете 'не получить согласованных резервных копий (что, если файл был заархивирован, а не запись в БД? или наоборот). Конечно, есть и методы, чтобы справиться с этим, но это быстро становится намного сложнее, чем хранение данных, хранящихся встол.