Resposta de Rejoby:
bytea sendo uma coluna "normal" também significa que o valor está sendo lido completamente na memória quando você o busca. Blobs, em contraste, você pode transmitir em stdout. Isso ajuda a reduzir o consumo de memória do servidor. Especialmente, quando você armazena de 4 a 6 imagens MPix.
Não há problema em fazer backup de blobs. O pg_dump fornece a opção "-b" para incluir os objetos grandes no backup.
Então, eu prefiro usar pg_lo_ *, você pode adivinhar.
Resposta de Re Kris Erickson:
Eu diria o contrário :). Quando as imagens não são os únicos dados que você armazena, não as armazene no sistema de arquivos, a menos que seja absolutamente necessário. É um grande benefício estar sempre certo sobre a consistência dos dados e ter os dados "inteiros" (o banco de dados). BTW, PostgreSQL é ótimo em preservar a consistência.
No entanto, é verdade, a realidade costuma exigir muito de desempenho ;-), e força você a servir os arquivos binários do sistema de arquivos. Mas mesmo assim, tendo a usar o banco de dados como o armazenamento "mestre" para binários, com todas as outras relações consistentemente vinculadas, enquanto forneço algum mecanismo de cache baseado em sistema de arquivos para otimização de desempenho.