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

Cách tốt nhất để lưu trữ hình ảnh người dùng bằng PHP và MySQL là gì?

"Tốt nhất" tùy thuộc vào mục tiêu của bạn là gì.

Hai cách chính để lưu trữ hình ảnh do người dùng tải lên là đưa nội dung nhị phân vào cơ sở dữ liệu dưới dạng BLOB hoặc lưu trữ hình ảnh vào ổ đĩa ở đâu đó và đưa một mục nhập vào cơ sở dữ liệu cho biết hình ảnh đó thuộc về đâu.

Đặt hình ảnh vào cơ sở dữ liệu có lợi thế là không yêu cầu bất kỳ loại quyền nào của hệ thống tệp trên máy chủ web và loại bỏ bất kỳ loại vấn đề đồng bộ nào nếu bạn đang phục vụ trang web trên nhiều máy chủ web. Tuy nhiên, theo thời gian, nó làm cho cơ sở dữ liệu của bạn trở nên khổng lồ và nếu bạn không thiết kế bảng của mình một cách chính xác, nó hoàn toàn có thể giết chết hiệu suất và khả năng mở rộng của bạn.

Lưu trữ hình ảnh dưới dạng tệp trên hệ thống tệp có thêm lợi thế là làm cho việc truy xuất cực kỳ nhanh chóng và hiệu quả, vì máy chủ web rất tốt trong việc cung cấp tệp tĩnh.

Đã chỉnh sửa để thêm

Nếu bạn quyết định lưu trữ nội dung tập tin trong cơ sở dữ liệu, tuyệt đối không đưa nó vào một bảng cần được truy cập nhanh. Ví dụ:nếu bạn có bảng "người dùng" được tìm kiếm trên hầu hết mọi lần xem trang, thì bảng đó không nơi để đặt nội dung tệp của bạn. Thay vào đó, hãy tạo một bảng "hình ảnh" hoặc "tệp" riêng biệt chứa tệp và thông tin meta liên quan.

Đặt nhiều byte trên mỗi hàng vào một bảng làm cho bảng đó hoạt động rất chậm. Bạn không muốn loại thứ đó trong các bảng được sử dụng nhiề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. Sử dụng nhãn trong mệnh đề có trong sqlachemy

  2. Mã PHP để chèn giá trị hộp kiểm vào cột cụ thể trên mysql với biểu mẫu chọn

  3. Làm thế nào để sao chép một bảng với các khóa và các tính năng cấu trúc khác được giữ lại trong MySQL?

  4. EXISTS có hiệu quả hơn COUNT (*)> 0 không?

  5. Mysql:Làm thế nào để chọn các nhóm có các giá trị nhất định?