PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Lưu trữ hình ảnh trong PostgreSQL

Cập nhật lên năm 2012, khi chúng tôi thấy rằng kích thước hình ảnh và số lượng hình ảnh đang ngày càng tăng lên trong tất cả các ứng dụng ...

Chúng tôi cần một số phân biệt giữa "hình ảnh gốc" và "hình ảnh đã xử lý", chẳng hạn như hình thu nhỏ.

Như câu trả lời của Jcoby nói, có hai lựa chọn, do đó, tôi khuyên bạn nên:

  • sử dụng blob (Đối tượng lớn nhị phân):dành cho kho ảnh gốc, tại bàn của bạn. Xem câu trả lời của Ivan (không có vấn đề gì với việc sao lưu các đốm màu!), Các mô-đun được cung cấp thêm của PostgreSQL, Hướng dẫn thực hiện, v.v.

  • sử dụng cơ sở dữ liệu riêng với DBlink:cho kho ảnh gốc, tại cơ sở dữ liệu (thống nhất / chuyên biệt) khác. Trong trường hợp này, tôi thích bytea , nhưng blob là gần giống nhau. Tách cơ sở dữ liệu là cách tốt nhất cho một "dịch vụ web hình ảnh hợp nhất".

  • sử dụng bytea (Mảng BYTE):để lưu vào bộ nhớ đệm hình ảnh thu nhỏ. Lưu vào bộ nhớ cache các hình ảnh nhỏ để gửi nó nhanh đến trình duyệt web (để tránh các sự cố hiển thị) và giảm quá trình xử lý của máy chủ. Bộ nhớ đệm cũng là siêu dữ liệu cần thiết, như chiều rộng và chiều cao. Bộ nhớ đệm cơ sở dữ liệu là cách dễ nhất, nhưng hãy kiểm tra nhu cầu của bạn và cấu hình máy chủ (ví dụ:mô-đun Apache):lưu trữ hình thu nhỏ tại hệ thống tệp có thể tốt hơn, so sánh hiệu suất. Hãy nhớ rằng nó là một dịch vụ web (hợp nhất), sau đó có thể được lưu trữ tại một cơ sở dữ liệu riêng biệt (không có bản sao lưu), phục vụ nhiều bảng. Xem thêm hướng dẫn sử dụng kiểu dữ liệu nhị phân PostgreSQL, kiểm tra với cột bytea, v.v.

LƯU Ý1:ngày nay việc sử dụng "giải pháp kép" (cơ sở dữ liệu + hệ thống tệp) không được dùng nữa (!). Có rất nhiều lợi ích khi sử dụng "chỉ cơ sở dữ liệu" thay vì kép. PostgreSQL có hiệu suất tương đương và các công cụ tốt để xuất / nhập / nhập / xuất.

LƯU Ý 2:hãy nhớ rằng PostgreSQL chỉ có bytea , không có BLOB mặc định của Oracle :"Tiêu chuẩn SQL định nghĩa (...) BLOB. Định dạng đầu vào khác với bytea, nhưng các hàm và toán tử được cung cấp hầu hết giống nhau", Hướng dẫn sử dụng.

CHỈNH SỬA 2014 :Tôi đã không thay đổi văn bản gốc ở trên hôm nay (câu trả lời của tôi là ngày 22 tháng 4 năm 12, hiện có 14 phiếu bầu), Tôi đang mở câu trả lời cho những thay đổi của bạn (xem "Chế độ Wiki", bạn có thể chỉnh sửa!), để hiệu đính và để cập nhật .
Câu hỏi ổn định (câu trả lời '08 của @ Ivans với 19 phiếu bầu), vui lòng giúp cải thiện văn bản này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trình điều khiển JDBC PostgreSQL với Android

  2. Cách chuyển đổi chuỗi thành dấu thời gian trong PostgreSQL

  3. Cách xác định các vấn đề về hiệu suất PostgreSQL với các truy vấn chậm

  4. Tại sao PostgreSQL thực hiện quét tuần tự trên cột được lập chỉ mục?

  5. làm thế nào để lưu trữ PostgreSQL jsonb bằng SpringBoot + JPA?