2010-05-11 35 views
5

Tôi có Trình tải tệp lên trong ứng dụng ASP.NET của mình bằng C#, chúng tôi có thể tải lên bất kỳ loại nào như hình ảnh, tài liệu, pdf, v.v.Thực hành tốt việc lưu trữ Tệp đã tải lên trong DB hoặc lưu trữ nó trong Hệ thống tệp

I m lưu trữ nó trong hệ thống tập tin và chỉ có tên của tập tin trong DB. Nghi ngờ của tôi là chúng tôi có thể lưu trữ toàn bộ tệp, hình ảnh trong DB. Hãy cho tôi biết đó là cách thực hành tốt và tại sao chúng ta cần sử dụng nó.

Hoặc tệp Hệ thống lưu trữ hoặc SQL DB Bộ nhớ.

Trả lời

4

Gần như cùng một câu hỏi đã được hỏi ở đây. Kiểm tra câu trả lời:

Working with images in WCF

Nó chủ yếu phụ thuộc vào kích thước tệp của bạn. Đây là một bài viết hay.

To BLOB or Not To BLOB

Đối với ít hơn file 256kb lưu trữ trong DB trong cột VarBinary là hiệu quả hơn.

Chúng tôi lưu trữ tệp của mình trong MS SQL Server trong cột VarBinary với giới hạn 256kb và hoạt động tốt.

Hy vọng điều đó sẽ hữu ích. Chúc may mắn!

+0

hey Cảm ơn các bạn –

+0

Bạn được chào đón. Như tôi thấy, bạn không quen chấp nhận câu trả lời. – hgulyan

2

Đây là tranh luận chủ quan, nhưng tôi sẽ nói rằng việc lưu trữ tệp trên hệ thống tệp là tốt hơn. Đó là những gì hệ thống tập tin được thiết kế cho và SQL Server 2008 có một new file type cho phép bạn làm điều này tự động và thậm chí sử dụng các giao dịch.

+0

Tôi nghĩ chủ quan hơn là tranh luận –

0

Phụ thuộc vào:

  1. thước bao nhiêu tập tin là, mặc dù các đốm màu lớn có thể được xử lý một cách hiệu quả trong RDBMS
  2. Có đọc hoặc viết nặng?
  3. Có bao nhiêu yêu cầu đồng thời cho rằng tài nguyên
  4. Bạn có sử dụng bất kỳ cơ chế bộ nhớ đệm khác
  5. Bạn có một SAN có sẵn, hoặc một hệ thống tập tin cụm

Nói tóm lại, không có chi tiết cụ thể, thực hành tốt nhất là cứng cho. Chỉ phụ thuộc vào các ràng buộc và yêu cầu của bạn như bất kỳ nhiệm vụ nào.

+0

Xin chào, tôi không có nhiều điều thú vị với SQL nhưng kích thước tệp sẽ không lớn hơn 1 hoặc 2MB cho bản ghi. Yêu cầu đồng thời sẽ không nhiều. Cung cấp cho tôi hệ thống được sử dụng phổ biến nhất. –

0

Ngoài các câu trả lời khác dường như tập trung vào hiệu suất, tôi cũng thêm quyền truy cập dưới dạng một vấn đề khác. Nếu các tập tin chứa dữ liệu bí mật hoặc truy cập vào các tập tin cần được kiểm toán, đôi khi nó có thể dễ dàng hơn để quản lý điều này nếu các tập tin được lưu trữ trong một DB.

+0

@ho - Có nhưng lưu trữ một đường dẫn bí mật trong DB và có một kịch bản trung gian cung cấp tải trọng có thể cung cấp cho bạn cùng một 'rào cản' –

+0

Không thực sự, vì bạn không thực sự có một dấu vết cho dù nó đã được thay đổi. Sau đó, cũng có một vấn đề khác là sao lưu/khôi phục. dễ dàng hơn ở một nơi. – TomTom

Các vấn đề liên quan