Відповідь re jcoby:
bytea є "нормальним" стовпцем, також означає, що значення повністю читається в пам'яті, коли ви отримуєте його. Краплі, навпаки, можна перетікати в stdout. Це допомагає зменшити слід пам'яті сервера. Особливо, коли ви зберігаєте 4-6 MPix-зображень.
Немає проблем із резервними копіями крапель. pg_dump надає можливість "-b" включати великі об'єкти в резервну копію.
Отже, я вважаю за краще використовувати pg_lo_ *, ви можете здогадатися.
Відповідь Кріса Еріксона:
Я б сказав протилежне :). Якщо зображення - не єдині дані, які ви зберігаєте, не зберігайте їх у файловій системі, якщо ви абсолютно не повинні. Така користь - завжди бути впевненим у послідовності даних та мати дані "в єдине ціле" (БД). До речі, PostgreSQL чудово допомагає зберігати послідовність.
Однак, правда, реальність часто є занадто вимогливою до продуктивності ;-), і вона підштовхує вас до обслуговування бінарних файлів з файлової системи. Але навіть тоді я схильний використовувати БД як "головне" сховище для бінарних файлів, при цьому всі інші відносини послідовно пов'язані, забезпечуючи деякий механізм кешування на основі файлової системи для оптимізації продуктивності.