VarBinary बनाम छवि SQL सर्वर डेटा बाइनरी डेटा स्टोर करने के लिए टाइप करें?


90

मुझे बाइनरी फ़ाइलों को SQL सर्वर डेटाबेस में संग्रहीत करने की आवश्यकता है। Varbinary और Image में से बेहतर Data Type कौन सा है?

जवाबों:


141

चूँकि चित्र को पदावनत किया जाता है, इसलिए आपको भिन्न का उपयोग करना चाहिए।

प्रति Microsoft (लिंक @ क्रिसटन के लिए धन्यवाद)

Microsoft SQL सर्वर के भविष्य के संस्करण में ntext, पाठ और छवि डेटा प्रकार हटा दिए जाएंगे। नए विकास कार्यों में इन डेटा प्रकारों का उपयोग करने से बचें, और उन अनुप्रयोगों को संशोधित करने की योजना बनाएं जो वर्तमान में उनका उपयोग करते हैं। इसके बजाय nvarchar (अधिकतम), varchar (अधिकतम), और varbinary (अधिकतम) का उपयोग करें।

बड़े गैर-यूनिकोड और यूनिकोड चरित्र और बाइनरी डेटा को संग्रहीत करने के लिए निश्चित और परिवर्तनशील लंबाई के प्रकार। यूनिकोड डेटा यूनिकोड यूसीएस -2 वर्ण सेट का उपयोग करता है।


1
@ cmsjr: शायद क्योंकि Microsoft कहता है: "Microsoft SQL सर्वर के भविष्य के संस्करण में छवि डेटा प्रकार हटा दिया जाएगा।"
एहसान

4
@ एहसान मैं केवल यह मान सकता हूं कि आप पदावनत शब्द से परिचित नहीं हैं। सामान्य तौर पर जब आप कहते हैं कि कुछ निकाला गया है, तो आप कह रहे हैं कि इसका उपयोग नहीं किया जाना चाहिए क्योंकि यह भविष्य में हटा दिया जाएगा। इसलिए मेरी पोस्ट और आपके द्वारा आपकी टिप्पणी में पोस्ट किए गए उद्धरण का मतलब अनिवार्य रूप से एक ही बात है।
cmsjr

कोई चिंता नहीं, आप एक अच्छी बात लाते हैं। मैं phrasing को अपडेट करूंगा।
cmsjr

मैं इसे "लिंक-ओनली" उत्तर नहीं कहूंगा। मैं इसे "एक सवाल का संक्षिप्त और सही जवाब" कहूंगा जिसमें उन लोगों के लिए कुछ उपयोगी लिंक शामिल हैं जो अधिक जानने के लिए इच्छुक हैं "उत्तर।
cmsjr

2
मैं फ्रैंक हो जाऊंगा और आपको बता दूंगा कि मुझे एडिट करने से मना कर दिया गया था क्योंकि आपने इसे अपमानजनक और धमकी भरे लहजे में कहा था। शायद यह अशिष्ट होने का आपका इरादा नहीं था, लेकिन ऐसा लगता था कि आप मेरे लिए ऐसा कर रहे हैं। अशिष्टता अक्सर लोगों को अन्यथा अच्छे विचारों को खारिज करने के लिए प्रेरित कर सकती है। मैंने आपके सुझाव के अनुसार सामग्री में सुधार किया, लेकिन मैं यह भी पूछूंगा कि आप अपने सुझाव कैसे प्रस्तुत करते हैं।
cmsjr

13

varbinary(max) जाने का रास्ता है (SQL Server 2005 में पेश किया गया)


9

FileStreamSQL सर्वर 2008 में शुरू की गई बल्कि स्पिफी भी है ।


spiffy: दिखने में स्मार्ट ?
लियाम

'बल्कि स्पिफी' का सामान्य अर्थ में कुछ अधिक सामान्य अर्थ (सिर्फ 'स्पिफी' से) है ... सबसे उपयुक्त मुझे लगता है।
17

यह प्रश्न कॉलम प्रारूपों के बारे में है और FileStreamयह केवल एक भंडारण व्यवहार है। Filestream varbinary(max)आपके sql सर्वर आवृत्ति में परिवर्तन और उपयोग करके कार्यान्वित किया जाता है ।
पक्ओगोमेज़

6

https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql

छवि

2 ^ 31-1 (2,147,483,647) बाइट्स के माध्यम से 0 से परिवर्तनीय-लंबाई बाइनरी डेटा। फिर भी यह छवि डेटाटाइप का उपयोग करने के लिए समर्थित है, लेकिन इसके बारे में जागरूक रहें:

https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql

भिन्नता [(n | अधिकतम)]

चर-लंबाई बाइनरी डेटा। n 1 से 8,000 तक का मान हो सकता है। अधिकतम इंगित करता है कि अधिकतम भंडारण आकार 2 ^ 31-1 बाइट्स है। भंडारण आकार डेटा की वास्तविक लंबाई है + 2 बाइट्स। दर्ज किया गया डेटा लंबाई में 0 बाइट्स हो सकता है। वर्बिनरी के लिए एएनएसआई एसक्यूएल पर्याय बाइनरी अलग है।

तो दोनों समान रूप से (2GB) हैं। लेकिन सावधान रहें:

https://docs.microsoft.com/en-us/sql/database-engine/deprecated-database-engine-features-in-sql-server-2016#features-not-supported-in-a-future-version- की-एसक्यूएल सर्वर

हालांकि "छवि" डेटाटाइप का अंत अभी भी निर्धारित नहीं है, आपको "भविष्य" प्रमाण के समकक्ष का उपयोग करना चाहिए।

लेकिन आपको खुद से पूछना होगा: एक कॉलम में BLOBS का भंडारण क्यों?

https://docs.microsoft.com/en-us/sql/relational-databases/blob/compare-options-for-storing-blobs-sql-server

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.