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

Lưu trữ hình ảnh đã tải lên:Nó nên được lưu trữ trên máy chủ hay trong cơ sở dữ liệu?

Có, bạn có thể sử dụng BLOB cho dữ liệu nhị phân trong Oracle. (Và nhiều cơ sở dữ liệu khác.) Chúng tôi sử dụng chúng ở đây để lưu trữ các tệp PDF.

Tôi đã thấy nó được thực hiện theo một trong hai cách. Lưu trữ hình ảnh trong cơ sở dữ liệu hoặc lưu trữ hình ảnh trong hệ thống tệp và sau đó lưu tên tệp trong cơ sở dữ liệu.

Ưu điểm khi lưu trữ trong cơ sở dữ liệu

Tất cả đều có trong cơ sở dữ liệu. Bạn kéo ra một bản ghi, hình ảnh liên quan ở ngay đó với nó.

Bạn nhận được tính toàn vẹn của dữ liệu giữa tệp và dữ liệu được liên kết của nó (tất nhiên là giả sử một thiết kế giản đồ tốt.)

Một hoạt động hợp lý để lấy dữ liệu và hình ảnh.

Tôi thấy việc mở rộng cơ sở dữ liệu để chứa nhiều dữ liệu nhị phân khó hơn và tốn kém hơn so với giải pháp thay thế hệ thống tệp.

Nhược điểm khi lưu trữ trong cơ sở dữ liệu

Không phải tất cả các công cụ đều giúp bạn dễ dàng duyệt qua hình ảnh.

Không thể dễ dàng truy cập hình ảnh từ web.

Tùy thuộc vào kích thước và số lượng tệp, bạn có thể kết thúc với nhiều dữ liệu thô trong một số bảng của mình.

Việc tải và lưu trữ dữ liệu blob không phải lúc nào cũng diễn ra nhanh chóng. (Ví dụ:gần đây tôi đã viết một loại dữ liệu tùy chỉnh cho Hibernate để xử lý các tệp PDF có đốm màu của chúng tôi.)

Ưu điểm đối với hệ thống tệp

Có lẽ hiệu quả hơn để đọc và ghi các tệp.

Nếu bạn muốn cung cấp hình ảnh lên web, bạn có thể làm điều đó ngay từ hệ thống tệp.

Dễ dàng duyệt hình ảnh hơn trong quá trình gỡ lỗi và rất nhiều công cụ miễn phí để thực hiện việc này.

Tôi tin rằng việc mở rộng quy mô ứng dụng sẽ dễ dàng hơn khi đưa các đốm màu vào hệ thống tệp.

Nhược điểm đối với hệ thống tệp

Các vấn đề về tính toàn vẹn / nhất quán của dữ liệu. Thay đổi điều gì đó về cấu trúc tệp và bạn có một bước khác để thực hiện trong cơ sở dữ liệu.

Đó là một việc khác cần sao lưu.

Nhiều phép toán logic (đọc từ cơ sở dữ liệu, đọc từ hệ thống tệp) để thu được hình ảnh và dữ liệu.



  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ả về một giá trị từ một câu lệnh chèn

  2. Làm cách nào để ngăn dbms_output.put_line cắt bỏ khoảng trắng ở đầu?

  3. Bỏ qua đặc quyền bảng và CÓ LỰA CHỌN CẤP bằng cách tạo chế độ xem

  4. Tìm chỉ mục cuối cùng của một chuỗi trong Oracle

  5. Sử dụng hàm LAG hoặc hàm khác trong mệnh đề SUM