Câu trả lời của Re jcoby:
bytea là cột "bình thường" cũng có nghĩa là giá trị được đọc hoàn toàn vào bộ nhớ khi bạn tìm nạp nó. Ngược lại, các khối màu, bạn có thể truyền vào stdout. Điều đó giúp giảm dung lượng bộ nhớ máy chủ. Đặc biệt, khi bạn lưu trữ hình ảnh 4-6 MPix.
Không có vấn đề gì với việc sao lưu các đốm màu. pg_dump cung cấp tùy chọn "-b" để đưa các đối tượng lớn vào bản sao lưu.
Vì vậy, tôi thích sử dụng pg_lo_ * hơn, bạn có thể đoán.
Câu trả lời của Kris Erickson:
Tôi sẽ nói ngược lại :). Khi hình ảnh không phải là dữ liệu duy nhất bạn lưu trữ, đừng lưu trữ chúng trên hệ thống tệp trừ khi bạn hoàn toàn phải làm như vậy. Đó là một lợi ích khi luôn chắc chắn về tính nhất quán dữ liệu của bạn và có dữ liệu "trong một phần" (DB). BTW, PostgreSQL rất tốt trong việc duy trì tính nhất quán.
Tuy nhiên, đúng, thực tế thường quá đòi hỏi hiệu suất ;-), và nó thúc đẩy bạn phân phát các tệp nhị phân từ hệ thống tệp. Nhưng ngay cả khi đó tôi vẫn có xu hướng sử dụng DB làm bộ lưu trữ "chính" cho các tệp nhị phân, với tất cả các mối quan hệ khác được liên kết nhất quán, đồng thời cung cấp một số cơ chế lưu trữ dựa trên hệ thống tệp để tối ưu hóa hiệu suất.