देखें http://dev.mysql.com /doc/refman/5.7/hi/string-type-overview.html
मूल रूप से, CHAR
. को छोड़कर ये सभी प्रकार परिवर्तनशील लंबाई हैं।
उदाहरण के लिए, यदि आपके पास VARCHAR(72)
. है और आप abcd
write लिखें इसमें आप 5 बाइट स्टोर करेंगे। प्रत्येक वर्ण के लिए 4 बाइट्स, और स्ट्रिंग की लंबाई (जो 4 है) को संग्रहीत करने के लिए 1 बाइट उपसर्ग।
यदि स्ट्रिंग की लंबाई 255 वर्णों से अधिक है, तो VARCHAR उपसर्ग 2 बाइट्स होगा। तो एक VARCHAR(300)
इसमें संग्रहीत एक 256 वर्ण स्ट्रिंग के साथ 258 बाइट्स लगेंगे।
TINYTEXT
हमेशा 1 बाइट उपसर्ग होता है, क्योंकि आप इसमें केवल 255 वर्ण ही संग्रहीत कर सकते हैं, इसलिए abcd
5 बाइट लेगा।
TEXT
एक 2 बाइट उपसर्ग है, इसलिए abcd
6 बाइट्स होंगे।
LONGTEXT
एक 4 बाइट उपसर्ग है, इसलिए abcd
8 बाइट्स होंगे।
अंत में, लगभग बेकार CHAR
है प्रकार। एक CHAR(72)
आप इसमें जो भी स्टोर करते हैं, वह हमेशा 72 बाइट्स लेगा। यह वास्तव में केवल सुपर शॉर्ट फ़ील्ड के लिए उपयोगी है जहां फ़ील्ड में हमेशा समान वर्णों की संख्या होती है। जैसे Y
या N
अच्छा होगा CHAR(1)
उम्मीदवार।