"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.