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

Khi nào thì lưu trữ hình ảnh trong cơ sở dữ liệu (mySQL) và khi nào thì không? (Liên kết hình ảnh với mục trong cơ sở dữ liệu)

Ưu điểm của việc lưu trữ hình ảnh / đốm màu trong cơ sở dữ liệu

  • Lưu trữ hình ảnh tự động là một phần trong các giao dịch của bạn
  • Không cần dọn dẹp hệ thống tệp và đồng bộ hóa nó với cơ sở dữ liệu
  • Quyền truy cập vào hình ảnh được kiểm soát thông qua phương tiện tương tự như quyền truy cập vào phần còn lại của dữ liệu
  • Chỉ một bản sao lưu duy nhất cần quan tâm
  • Cơ sở dữ liệu thường phù hợp hơn với hàng triệu (nếu không phải hàng tỷ) bản ghi được lưu trữ. Trong hệ thống tập tin, bạn phải tìm một bản phân phối thông minh trên một số thư mục. Một thư mục duy nhất sẽ không thể xử lý hàng triệu tệp một cách hiệu quả.
  • Đối với một số khối lượng công việc, việc lưu trữ hình ảnh trong cơ sở dữ liệu thực sự có thể nhanh hơn.
    Đối với SQL Server, Microsoft đã thực sự kiểm tra điều này:
    http://research.microsoft.com/apps/pubs/default.aspx?id=64525
    Tôi sẽ không ngạc nhiên nếu các cơ sở dữ liệu khác hoạt động theo cách tương tự.

Nhược điểm:

  • Làm cho cơ sở dữ liệu của bạn và do đó các bản sao lưu của bạn lớn hơn rất nhiều (nghĩ đến thời gian cần thiết để khôi phục nó).
  • hệ thống tệp thường tốt hơn với các bản sao lưu gia tăng (trừ khi bạn có RMAN của Oracle)
  • các ứng dụng khác không thể truy cập hình ảnh (ví dụ:WebServer, công cụ thay đổi kích thước hình ảnh, Máy chủ FTP)
  • Hình ảnh không được trải rộng trên mạng phân phối nội dung để cân bằng tải trong ứng dụng web (để gỡ bỏ máy chủ ứng dụng)
  • quan niệm chung là truy xuất từ ​​cơ sở dữ liệu sẽ chậm hơn.
  • đối với một số cơ sở dữ liệu, việc truy xuất các đốm màu có thể thực sự làm giảm hiệu quả của bộ đệm ẩn cơ sở dữ liệu (không phải như vậy đối với Oracle, SQL Server và PostgreSQL. Tuy nhiên, tôi không biết đối với MySQL)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách lấy lại UUID java được lưu trữ trong DB dưới dạng tệp nhị phân

  2. Tại sao MySQL không hỗ trợ độ chính xác mili giây / micro giây?

  3. Thay thế cho mysql_real_escape_string mà không cần kết nối với DB

  4. Cách lưu kết quả truy vấn MySQL vào tệp .CSV

  5. SUM (DISTINCT) Dựa trên các cột khác