Trước hết, bạn nên mong đợi lưu trữ BLOB trong cơ sở dữ liệu chậm hơn (đôi khi một chút, thường đáng kể), nhưng chắc chắn là không nhanh hơn lưu trữ chúng trong hệ thống tệp. Các lý do để lưu trữ chúng trong DB không tập trung vào hiệu suất, mà là về ví dụ:
- Không có sẵn hệ thống tệp (được chia sẻ) trong một kịch bản được phân nhóm hoặc cân bằng tải
- Dễ dàng sao lưu:Quy trình đơn lẻ, a.o.t. 2 quy trình khi tệp và DB được sử dụng
- An toàn giao dịch:BLOB đã ở đó và đã hoàn thành hoặc chưa, nhưng chưa ở giai đoạn nửa chừng
- những người khác mà tôi không thể nghĩ ra ngay bây giờ.
Nguyên tắc chung là, nếu không có vấn đề nào trong số này khiến bạn lo lắng, bạn nên lưu trữ các tệp của mình dưới dạng ... tệp. Lưu trữ siêu dữ liệu và tên đường dẫn trong DB là cách tốt và phổ biến của IMHO.
Liên quan đến điều chỉnh Oracle:Có những cuốn sách đã viết về điều đó. Tôi nghi ngờ tổng số chúng hơn một tấn ở định dạng bìa mềm. Trước hết, bạn có thể nhìn vào mức tiêu thụ bộ nhớ của quy trình Oracle - quy tắc chung:Nếu nó nhỏ hơn một hợp đồng biểu diễn và bạn sử dụng BLOB, bạn đang gặp rắc rối. Đọc các vùng bộ nhớ khác nhau và cách tăng chúng. Một số giới hạn cho phiên bản cấp tốc có thể được áp dụng.