MySQL से दस्तावेज़ीकरण :
CHAR
. के बीच का अंतर और VARCHAR
मूल्यों को संग्रहीत करने का तरीका है, CHAR (10)
भंडारण के 10 बाइट्स की आवश्यकता होती है चाहे आप कितने भी वर्णों का उपयोग करें क्योंकि डेटा रिक्त स्थान के साथ सही-गद्देदार है, VARCHAR (10)
केवल 1 बाइट लेता है (1 बाइट वर्ण सेट में) + लंबाई उपसर्ग (1 जब लंबाई 255 या उससे कम हो, 2 अन्यथा... मुझे नहीं पता क्यों key_len EXPLAIN
के लिए 2 बाइट्स जोड़ें)
मैं समझ नहीं पा रहा हूं कि पीछे वाले रिक्त स्थान से आपका क्या मतलब है, हालांकि मैं कल्पना कर सकता हूं कि आप VARCHAR
के साथ अनुगामी रिक्त स्थान की अधिकता का उल्लेख कर रहे हैं इन्हें एक चेतावनी के साथ काट दिया जाता है, इस बीच CHAR
. में कॉलम इन रिक्त स्थान को चुपचाप काट दिया जाता है, इसका कुछ अर्थ है CHAR
अंत में अनुगामी रिक्त स्थान के साथ संग्रहीत किए जाते हैं।
इस लिंक आप देख सकते हैं कि CHAR
. के लिए वर्णों की संख्या या VARCHAR
वही है, हालांकि, आपके भंडारण के लिए प्रति वर्ण 1 से 4 बाइट्स की आवश्यकता होगी, यहां
समर्थित वर्ण सेट की सूची है और यहां
ए> प्रति वर्ण बाइट।
मैंने InnoDB के लिए विभिन्न पंक्तियों के प्रारूप के बारे में पढ़ा है
अनावश्यक पंक्ति प्रारूप विशेषताएँ :
कॉम्पैक्ट पंक्ति प्रारूप विशेषताएँ :