आपके वार्चर कॉलम के लिए निर्धारित लंबाई के बावजूद, खाली कॉलम द्वारा उपयोग किया जाने वाला संग्रहण स्थान समान होगा।
CHAR और VARCHAR प्रकार
यह केवल varchar स्तंभ द्वारा उपयोग किए जाने वाले स्थान को संबोधित करता है और पंक्ति, उसके अनुक्रमित, प्राथमिक कुंजी और अन्य स्तंभों द्वारा उपयोग किए जाने वाले कुल संग्रहण स्थान पर विचार नहीं करता है।
जैसा कि ypercube ने अपनी टिप्पणी में उल्लेख किया है, पंक्ति भंडारण के लिए अतिरिक्त विचार हैं जब एक कम से कम एक अशक्त स्तंभ मौजूद हो।
इनोडब फिजिकल रो स्ट्रक्चर
रिकॉर्ड हेडर के चर-लंबाई वाले हिस्से में NULL कॉलम को इंगित करने के लिए थोड़ा वेक्टर होता है। अगर कहीं भी 9 से 15 कॉलम हैं जो NULL हो सकते हैं, तो बिट वेक्टर दो बाइट्स का उपयोग करता है।)
...
शीर्ष लेख के चर-लंबाई वाले हिस्से में भी चर-लंबाई स्तंभों की लंबाई होती है। कॉलम की अधिकतम लंबाई के आधार पर प्रत्येक लंबाई में एक या दो बाइट्स होते हैं। यदि अनुक्रमणिका के सभी स्तंभ NULL नहीं हैं और उनकी निश्चित लंबाई है, तो रिकॉर्ड शीर्ष लेख में कोई चर-लंबाई वाला भाग नहीं है
और हां, आपके द्वारा चुने गए प्रकार के आधार पर भंडारण स्थान का उपयोग परिवर्तन होता है, क्या यह निश्चित है या परिवर्तनशील है, इंजन जैसे टकराव और अन्य कारक।
MySQL यहाँ डेटा भंडारण को अनुकूलित करने की सिफारिशें करता है: डेटा आकार का अनुकूलन
अपडेट करें
वरचर के साथ एक अतिरिक्त विचार और वह स्मृति है। जितना संभव हो एक चर लंबाई के कॉलम के आकार को सीमित करने के लिए MySQL में यह महत्वपूर्ण है। भले ही स्तंभ परिवर्तनशील है और उपयोग की जाने वाली संग्रहण जगह परिवर्तनशील है, MySQL मूल्यों को संग्रहीत करने के लिए निश्चित-विखंडू में मेमोरी आवंटित करेगा। उदाहरण के लिए, varchar (200) अधिक मेमोरी का उपयोग करेगा जो varchar (5)। यह संग्रहण स्थान समस्या नहीं है, लेकिन फिर भी अपने कॉलमों को परिभाषित करते समय कुछ पर विचार करें।