MySQL स्टोरेज इंजन का विकल्प प्रदान करता है। डेटा का भौतिक भंडारण स्टोरेज इंजन पर निर्भर करता है।
VARCHAR का MyISAM संग्रहण
MyISAM में, VARCHAR
s आमतौर पर केवल स्ट्रिंग की वास्तविक लंबाई प्लस एक बाइट या दो लंबाई पर कब्जा कर लेता है। यह MyISAM की डिज़ाइन सीमा से टेबल लॉकिंग तक व्यावहारिक बना दिया गया है, जैसा कि एक पंक्ति लॉकिंग क्षमता के विपरीत है। प्रदर्शन परिणामों में एक अधिक कॉम्पैक्ट कैश प्रोफ़ाइल शामिल है, लेकिन रिकॉर्ड ऑफ़सेट की अधिक जटिल (धीमी) गणना भी शामिल है।
(वास्तव में, MyISAM आपको पसंद की डिग्री संपूर्ण तालिका में होने वाले स्तंभ प्रकारों के आधार पर निश्चित भौतिक पंक्ति आकार और चर भौतिक पंक्ति आकार तालिका स्वरूपों के बीच। VARCHAR
. की घटना केवल डिफ़ॉल्ट विधि को बदलता है, लेकिन एक TEXT
. की उपस्थिति बूँद बलों VARCHAR
s एक ही तालिका में चर लंबाई विधि का भी उपयोग करने के लिए।)
भौतिक भंडारण विधि विशेष रूप से अनुक्रमित के साथ महत्वपूर्ण है, जो तालिकाओं की तुलना में एक अलग कहानी है। MyISAM दोनों . के लिए स्पेस कंप्रेशन का उपयोग करता है CHAR
और VARCHAR
कॉलम, जिसका अर्थ है कि छोटा डेटा दोनों ही मामलों में इंडेक्स में कम जगह लेता है।
VARCHAR का InnoDB संग्रहण
InnoDB, अधिकांश अन्य वर्तमान संबंधपरक डेटाबेस की तरह, अधिक परिष्कृत तंत्र का उपयोग करता है। VARCHAR
जिन स्तंभों की अधिकतम चौड़ाई 768 बाइट्स से कम है, उन्हें इनलाइन संग्रहीत किया जाएगा, जिसमें कमरा आरक्षित अधिकतम चौड़ाई से मेल खाता है। अधिक सटीक रूप से यहां
:
InnoDB वर्तमान में अपने इंडेक्स में स्पेस कंप्रेशन नहीं करता है, जैसा कि ऊपर वर्णित MyISAM के विपरीत है।
प्रश्न पर वापस जाएं
हालांकि उपरोक्त सभी केवल एक कार्यान्वयन विवरण है जो संस्करणों के बीच भी बदल सकता है। CHAR
. के बीच सही अंतर और VARCHAR
अर्थपूर्ण है, और ऐसा ही VARCHAR(20)
. के बीच है और VARCHAR(50)
. यह सुनिश्चित करके कि VARCHAR(20)
. में 30 वर्ण स्ट्रिंग को संग्रहीत करने का कोई तरीका नहीं है , डेटाबेस विभिन्न प्रोसेसर और अनुप्रयोगों के लिए जीवन को आसान और बेहतर परिभाषित करता है जिसे यह अनुमानतः व्यवहार समाधान में एकीकृत करता है। यह बड़ी बात है।
विशेष रूप से व्यक्तिगत नामों के संबंध में, यह प्रश्न आपको कुछ व्यावहारिक मार्गदर्शन दे सकता है। 70 UTF-8 वर्णों से अधिक पूर्ण नाम वाले लोग वैसे भी परेशानी में हैं।