MySQL में BLOB और TEXT डेटैट के बीच अंतर क्या हैं?


117

क्या है blobऔर क्या है text? क्या अंतर हैं?

मुझे कब उपयोग करने की आवश्यकता है blobऔर मुझे textडेटा प्रकार के रूप में कब आवश्यकता है ?

क्योंकि blobऔर के लिए text, mediumblob== mediumtext, smallblob== हैं small text। क्या उनका भी यही अर्थ है?

और यह देखो MEDIUMBLOB, MEDIUMTEXT L3 बाइट्स, जहां L < 224

क्या है L?


मुझे लगता है कि यह पोस्ट आपके प्रश्न का जवाब देती है stackoverflow.com/questions/7071662/mysql-text-vs-blob-vs-clob
इयरलोन्रिल्स

जवाबों:


103

पाठ और CHAR समय के साथ जुड़े चरित्र सेट से / में बदल जाएगा। BLOB और BINARY बस बाइट्स की दुकान करते हैं।

BLOB का उपयोग बाइनरी डेटा को स्टोर करने के लिए किया जाता है जबकि Text का उपयोग बड़ी स्ट्रिंग को स्टोर करने के लिए किया जाता है।

BLOB मान को बाइनरी स्ट्रिंग्स (बाइट स्ट्रिंग्स) के रूप में माना जाता है। उनके पास कोई वर्ण सेट नहीं है, और कॉलम मानों में बाइट्स के संख्यात्मक मानों के आधार पर छंटनी और तुलना होती है।

पाठ मानों को बिना तार के तार (वर्ण तार) के रूप में माना जाता है। उनके पास एक चरित्र सेट है, और चरित्र सेट के टकराव के आधार पर मूल्यों को क्रमबद्ध किया जाता है और तुलना की जाती है।

http://dev.mysql.com/doc/refman/5.0/en/blob.html


3
तो, हम "वर्डप्रेस पोस्ट" जैसे लंबे पाठ को संग्रहीत करने के लिए पाठ का उपयोग करते हैं? और हम एक बहुत लंबे URL पते को संग्रहीत करने के लिए blob का उपयोग करते हैं? तो हम ब्लॉब या टेक्स्ट का उपयोग करने के बजाय बहुत लंबे पाठ को संग्रहीत करने के लिए varchar का उपयोग क्यों नहीं करते हैं? क्योंकि मेमोरी की गणना में, varchar वास्तव में सरल है, उदाहरण के लिए टेबल वेबसाइट (website_name varchar (30)) बनाएं और फिर हम website_name "stackoverflow" को भरें, इसलिए आवश्यक मेमोरी 13byte
nencor

5
TEXT को वरचर (MAX) से बदला जा रहा है, लेकिन अब आपके mysql के उपयोग के संस्करण के आधार पर बड़ी टेक्स्ट पोस्ट जैसे ब्लॉग बॉडी पोस्ट आदि के लिए TEXT का उपयोग किया जाना चाहिए। बहुत लंबे URL पते या बड़ी मात्रा में पाठ संग्रहीत करने के लिए BLOB का उपयोग नहीं किया जाना चाहिए । यह आमतौर पर छवियों या अन्य बाइनरी आधारित वस्तुओं को संग्रहीत करने के लिए उपयोग किया जाता है। व्यक्तिगत रूप से मैं कभी भी BLOB या TEXT का उपयोग नहीं करता और बड़ी संख्या में डेटा को xml फ़ाइलों में उपयोगकर्ता आईडी आधारित फ़ोल्डर के सापेक्ष संग्रहीत करता हूं।
डारसी

मुझे बाइनरी आधारित वस्तु समझ में नहीं आती है। तुम्हारा मतलब है, हम ब्लॉब डेटा प्रकार का उपयोग करके डेटाबेस में फोटो स्टोर कर सकते हैं ?? फ़ोल्डर की तरह? बाइनरी के बारे में मैं जो कुछ भी जानता हूं वह केवल 1 या 0. है
nencor

1
@ नॉन्सर हां, आप छवियों को डेटाबेस में स्टोर कर सकते हैं। आप अभिलेखागार भी संग्रहीत कर सकते हैं। लेकिन आप एक फ़ोल्डर को डेटाबेस में संग्रहीत नहीं कर सकते, क्योंकि फ़ोल्डर वास्तव में फ़ाइल सिस्टम की विशेषताएं हैं। (आप अंततः एक डेटाबेस के लिए एक आईएसओ फ़ाइल के रूप में एक पूर्ण फ़ाइल सिस्टम को स्टोर कर सकते हैं, हालांकि)
मार्टिन थोमा

@ martin-thoma हमारे पास एक एप्लिकेशन है जहां सर्वर-साइड में एक MongoDB डेटाबेस है। अनुप्रयोग का मोबाइल घटक SQLLite का उपयोग करता है। MongoDB डेटाबेस और SQLLite डेटाबेस के बीच डेटा को ब्रिज करने का एक तरीका होना चाहिए। MongoDB विशिष्ट रूप से डेटा की पहचान करने के लिए ObjectIds का उपयोग करते हैं। चूंकि SQLLite (RDBMS दुनिया) में MongoDB ObjectIds का प्रतिनिधित्व करने का कोई सीधा तरीका नहीं है, मैं सोच रहा था कि क्या मैं ऑब्जेक्ट्स को BLOB प्रकारों के रूप में संग्रहीत कर सकता हूं। क्या यह एक उचित समाधान की तरह लगता है? क्या यह धीमा होगा? क्या कोई अन्य कमियां होंगी?
सीएस लुईस

10

TEXT और CHAR या nchar जो आम तौर पर सादे पाठ में परिवर्तित हो जाएंगे ताकि आप केवल पाठ को स्ट्रिंग्स की तरह संग्रहीत कर सकें।

BLOB और BINARY जिसका मतलब है कि आप बाइनरी डेटा स्टोर कर सकते हैं जैसे कि इमेज बस बाइट्स को स्टोर करते हैं।


बाइनरी डेटा जैसे छवि को स्टोर करके आपका क्या मतलब है? क्या आपका मतलब छवि यूआरएल है?
nencor

10

बूँद डेटाैटिप्स बाइनरी ऑब्जेक्ट्स को छवियों की तरह संग्रहीत करता है जबकि टेक्स्ट डेटाैटेज़ टेक्स्ट ऑब्जेक्ट्स को वेबपेज के लेखों की तरह संग्रहीत करता है


7

एक BLOB डेटा की एक चर राशि रखने के लिए एक बाइनरी स्ट्रिंग है। अधिकांश भाग के लिए BLOB का उपयोग पथ और फ़ाइल जानकारी के बजाय वास्तविक छवि बाइनरी को रखने के लिए किया जाता है। पाठ बड़ी मात्रा में स्ट्रिंग वर्णों के लिए है। आम तौर पर एक ब्लॉग या समाचार लेख एक पाठ क्षेत्र का गठन होगा

इस मामले में एल का उपयोग भंडारण की आवश्यकता को बताते हुए किया जाता है। (लंबाई | आकार + 3) जब तक यह 224 से कम है।

संदर्भ: http://dev.mysql.com/doc/refman/5.0/en/blob.html


3

हाई-परफॉरमेंस माईसकल पुस्तक के अनुसार:

BLOB और TEXT परिवारों के बीच एकमात्र अंतर यह है कि BLOB प्रकार द्विआधारी डेटा को बिना टकराव या वर्ण सेट के संग्रहीत करते हैं, लेकिन TEXT प्रकार में एक वर्ण सेट और टकराव होता है।


1

BLOB बाइनरी डेटा को स्टोर करता है जो 2 जीबी से अधिक है। BLOB के लिए अधिकतम आकार 4 जीबी है। द्विआधारी डेटा का अर्थ है असंरचित डेटा यानी छवियां ऑडियो फाइलें vedio फाइलें डिजिटल हस्ताक्षर

बड़े स्ट्रिंग को स्टोर करने के लिए टेक्स्ट का उपयोग किया जाता है।

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