मैं डेटा यूआरआई (क्लाइंट साइड, कैनवास का उपयोग करके) का उपयोग कर सर्वर पर एक छवि पोस्ट कर रहा हूं। अब मेरे पास दो विकल्प हैं: मैं "छवि" को एक वर्चर (अधिकतम) कॉलम में एक स्ट्रिंग के रूप में सहेज सकता हूं या मैं इसे बाइट [] में परिवर्तित कर सकता हूं और इसे varbinary (max) के रूप में सहेज सकता हूं।डाटाबेस में डेटा यूआरआई बनाम बाइनरी
जहां तक कार्यान्वयन, प्रयास समान है। मैं यह निर्धारित करने की कोशिश कर रहा हूं कि 1 तक जितना अधिक कुशल होगा: डीबी में स्थान और 2: छवि प्रदर्शित करना। क्या किसी ने इस पर कोई विश्लेषण देखा है या इसे मापने का एक अच्छा तरीका है?
एएन एफवाईआई - डीबी में एक 3 केबी छवि लगभग 100 के वर्ण है।
का उपयोग करना: ASP.NET 4.5, MVC ने एसक्यूएल सर्वर 2008
स्पष्ट करने के लिए
मैं या तो एक varbinary में बाइट [] का उपयोग कर डेटाबेस में छवि को स्टोर कर सकते (मैक्स) स्तंभ है की तरह आम तौर पर मामला या मैं डाटाबेस कैनवास से डेटा यूआरआई स्टोर कर सकता हूं जो डेटा जैसा दिखता है: छवि/पीएनजी; बेस 64, iVBORw0K ... एक वर्चर (अधिकतम) कॉलम में।
बाइट स्टोर करना [] सामान्य है और उसे और स्पष्टीकरण की आवश्यकता नहीं है। डेटा भंडारण यूआरआई सिर्फ एक स्ट्रिंग है और छवि प्रदर्शित की बात होगी:
<img src="data:image/png;base64,iVBORw0K" /> or
<img src="@Model.Uri" />
मेरा प्रश्न जो एक अधिक performant और अंतरिक्ष की बचत है और अगर कोई प्रलेखन, श्वेत पत्र या इस विशिष्ट तुलना आसपास विश्लेषण है ।
यह सहायक था। एक लिंक है?मैंने 40 मिनट की तलाश की है और ऐसी कोई तुलना नहीं मिल सकती है। –
आप varbinary (max) varchar (max) –
का उपयोग नहीं करेंगे, जबकि मैं आपके प्रयास की सराहना करता हूं, सवाल डेटाबेस में एक छवि संग्रहीत करने के बारे में नहीं था - जो मुझे 7 सेकंड ले जाएगा;) - यह भंडारण के बारे में है [डेटा यूआरआई ] (http://en.wikipedia.org/wiki/Data_URI_scheme) बाइट []/ब्लॉब के बजाय जो आमतौर पर संग्रहीत होता है। –