RUS 21,
ещё есть large objects.
Но интерфейс доступа, мягко говоря, специфический, плюс нельзя вынести в отдельное табличное пространство.
Так что всё, что не вмещается в bytea 1 гиг - имеет смысл хранить на диске поближе к серверу приложений,
а в БД - ссылку с именем файла( какой-нибудь UUID) соответственно. Тем более, что есть такой тип данных.
Ещё вариант для фанатов консистентности и единообразия - разбивать на части.
CREATE TABLE table_bin(id UUID, num_part INTEGER, bin_data bytea,base_name TEXT);
А потом тупо склеивать.