2008-09-27 19 views
13

मेरा पक्ष प्रश्न वास्तव में tinyblob & tinytext के बीच कोई अंतर है?वर्कर (255) v tinyblob v tinytext

मेरा असली सवाल खरीदें क्या कारण है, यदि कोई है, तो क्या मैं tinyblob या tinytext पर varchar (255) चुनूँगा?

उत्तर

16

मुख्य रूप से storage requirements और स्मृति हैंडलिंग/गति:

निम्न तालिका में, M nonbinary स्ट्रिंग प्रकार और बाइनरी स्ट्रिंग प्रकार के लिए बाइट के लिए अक्षरों में घोषित स्तंभ लंबाई प्रतिनिधित्व करता है। L किसी दिए गए स्ट्रिंग मान के बाइट्स में वास्तविक लंबाई का प्रतिनिधित्व करता है।

VARCHAR (M), VARBINARY (M):
L + 1 बाइट्स यदि स्तंभ मान 0 की आवश्यकता होती है - 255 बाइट्स,
L + 2 बाइट्स अगर मान 255 से अधिक बाइट्स

आवश्यकता हो सकती है TINYBLOB, TINYTEXT:
L + 1 बाइट्स, जहां L

,

उपयोग में प्रत्येक तालिका के लिए MySQL 4 पंक्तियों के लिए स्मृति आवंटित:

साथ ही, this पोस्ट देखें। इन पंक्तियों में से प्रत्येक के लिए CHAR (X)/VARCHAR (X) कॉलम X12 अप लेता है।

एक पाठ/दूसरी तरफ ब्लॉब एक 8 बाइट सूचक + एक 1-4 बाइट लंबाई ( ब्लॉब/पाठ प्रकार के आधार पर) का प्रतिनिधित्व करती है। बीएलओबी/टेक्स्ट उपयोग पर गतिशील रूप से आवंटित है। यह कम मेमोरी का उपयोग करेगा, लेकिन कुछ मामलों में यह आपकी स्मृति को लंबे रन में विभाजित कर सकता है।

संपादित: एक अलग रूप में, धब्बे बाइनरी डेटा और पाठ भंडार ASCII की दुकान के रूप में, TINYBLOB और TINYTEXT के बीच फर्क सिर्फ इतना है thats।

5

VARCHAR (255) tinyblob या tinytext से अधिक SQL मानक है। तो आपकी स्क्रिप्ट, और एप्लिकेशन डेटाबेस विक्रेताओं में अधिक पोर्टेबल होगा।

-8

आप TINYTEXT लिए वर्ण सेट लागू नहीं कर सकते, लेकिन आप VARCHAR (255)

+2

यह नहीं सच है, तो आप आवेदन कर सकते हैं चरित्र दोनों VARCHAR और TINYTEXT (MySQL में) करने के लिए सेट है, लेकिन TINYBLOB लिए नहीं कर रहा है कर सकते हैं। –

संबंधित मुद्दे