Re Jcoby's ответ:
Байт, являющийся «нормальным» столбцом, также означает, что значение полностью считывается в память при его извлечении. Blobs, напротив, вы можете перетекать в стандартный вывод. Это помогает уменьшить объем памяти сервера. Особенно, когда вы храните 4-6 изображений MPix.
Нет проблем с резервным копированием капель. pg_dump предоставляет опцию "-b" для включения больших объектов в резервную копию.
Итак, я предпочитаю использовать pg_lo_ *, как вы можете догадаться.
Re Крис Эриксон ответ:
Я бы сказал наоборот :). Если изображения - это не единственные данные, которые вы храните, не храните их в файловой системе, если в этом нет необходимости. Это такое преимущество, чтобы всегда быть уверенным в согласованности ваших данных и иметь данные «в одном куске» (БД). Кстати, PostgreSQL хорош в сохранении согласованности.
Однако, правда, реальность часто слишком требовательна к производительности ;-), и это заставляет вас обслуживать двоичные файлы из файловой системы. Но даже в этом случае я склонен использовать БД в качестве «основного» хранилища для двоичных файлов, при этом все остальные отношения последовательно связаны, при этом предоставляя некоторый механизм кэширования на основе файловой системы для оптимизации производительности.