Tôi đăng hình ảnh lên máy chủ bằng cách sử dụng URI DATA (phía máy khách, sử dụng canvas). Bây giờ tôi có hai lựa chọn: tôi có thể lưu "hình ảnh" như một chuỗi trong một cột varchar (max) hoặc tôi có thể chuyển đổi nó thành byte [] và lưu nó thành varbinary (max).URI dữ liệu so với nhị phân trong cơ sở dữ liệu
Theo như triển khai, nỗ lực là như nhau. Tôi đang cố gắng để xác định những gì sẽ hiệu quả hơn như xa như 1: không gian trong DB và 2: hiển thị hình ảnh. Có ai nhìn thấy bất kỳ phân tích về điều này hoặc có một cách tốt để đo lường điều này?
AN FYI - hình ảnh 3kb có khoảng 100 nghìn ký tự trong DB.
Sử dụng: ASP.NET 4.5, MVC, SQL Server 2008
Để Làm rõ
Tôi có thể lưu trữ hình ảnh trong cơ sở dữ liệu sử dụng byte [] trong một varbinary (MAX) cột như là điển hình là trường hợp hoặc tôi có thể lưu trữ URI DATA từ canvas HTML5 trông giống như dữ liệu: image/png; base64, iVBORw0K ... trong cột varchar (max).
Lưu trữ byte [] là điển hình và không cần giải thích thêm. Lưu trữ các dữ liệu URI chỉ là một chuỗi và hiển thị hình ảnh sẽ là một vấn đề:
<img src="data:image/png;base64,iVBORw0K" /> or
<img src="@Model.Uri" />
Câu hỏi của tôi là cái nào là performant và nhiều không gian hơn tiết kiệm và nếu có bất kỳ tài liệu, giấy trắng hoặc phân tích xung quanh so sánh cụ thể này .
Điều đó hữu ích. Có một liên kết?Tôi đã tìm 40 phút và không thể tìm thấy bất kỳ sự so sánh nào như vậy. –
bạn sẽ sử dụng varbinary (max) không varchar (max) –
Trong khi tôi đánh giá cao nỗ lực của bạn, câu hỏi không phải là lưu trữ một hình ảnh trong cơ sở dữ liệu - điều đó sẽ mang lại cho tôi 7 giây;) - đó là về lưu trữ [DATA URI ] (http://en.wikipedia.org/wiki/Data_URI_scheme) thay vì byte []/blob thường được lưu trữ. –