अगर मैं जो varchar (100) को स्वीकार करने के रूप में घोषित किया जाता है एक क्षेत्र के साथ एक मेज और फिर मैं वास्तव में शब्द "हैलो" कितना वास्तविक भंडारण mysql सर्वर पर इस्तेमाल किया जाएगा डालने?
माइस्क्ल लंबाई के लिए 5 बाइट प्लस वन बाइट स्टोर करेगा। यदि वर्कर 255 से अधिक है, तो यह लंबाई के लिए 2 बाइट स्टोर करेगा।
ध्यान दें कि यह कॉलम के वर्णमाला पर निर्भर है। यदि वर्णसेट utf8 है, तो MySQL को प्रति वर्ण 3 बाइट्स की आवश्यकता होगी। कुछ स्टोरेज इंजन (यानी मेमोरी) को चरित्र सेट के लिए प्रति वर्ण अधिकतम बाइट लंबाई की आवश्यकता होगी।
इसके अलावा में शून्य परिणाम के निवेश में कोई भंडारण भी varchar (100) घोषित किया जाता है, हालांकि इस्तेमाल किया जा रहा होगा?
कॉलम को शून्य बनाने का अर्थ है कि mysql को प्रति पंक्ति 8 शून्य कॉलम प्रति अतिरिक्त बाइट को अलग करना होगा। इसे "नल मास्क" कहा जाता है।
क्या जवाब है, क्या यह विभिन्न डेटाबेस कार्यान्वयन के अनुरूप है?
यह mysql भीतर भंडारण इंजनों के बीच भी संगत नहीं है!
स्रोत
2009-11-24 14:51:40
कृपया ध्यान दें कि संख्या MyISAM तालिकाओं के लिए हैं। InnoDB या अन्य इंजनों में अन्य आवश्यकताएं हो सकती हैं। यह भी देखें: http://dev.mysql.com/doc/refman/5.1/en/storage-requirements.html – johannes
इसलिए कोई फर्क नहीं पड़ता कि हम वाराटर डेटाटाइप पर कितनी सीमा निर्धारित कर चुके हैं। सही? –