Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

InnoDB कैरेक्टर कॉलम को कैसे स्टोर करता है?

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 के लिए विभिन्न पंक्तियों के प्रारूप के बारे में पढ़ा है

अनावश्यक पंक्ति प्रारूप विशेषताएँ :

कॉम्पैक्ट पंक्ति प्रारूप विशेषताएँ :




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तालिका का उपयोग न करने वाली दो तिथियों के बीच सभी तिथियों का चयन करें (तिथियों की सूची बनाएं)

  2. MySQL में LOWER () फ़ंक्शन कैसे काम करता है

  3. समूहीकरण करते समय मैं किसी तालिका से सबसे लंबी 'स्ट्रिंग' का चयन कैसे करूं?

  4. SQL किसी अन्य तालिका के आधार पर पंक्तियों को हटाएं

  5. कर्ल और पीएचपी 1 प्रदर्शित कर रहा है