VARCHAR
तालिका के साथ इनलाइन संग्रहीत है। VARCHAR
आकार उचित होने पर तेज़ होता है, जिसका ट्रेडऑफ़ तेज़ होगा आपके डेटा और आपके हार्डवेयर पर निर्भर करता है, आप अपने डेटा के साथ एक वास्तविक दुनिया परिदृश्य को बेंचमार्क करना चाहेंगे।
बाइट्स की प्रभावी अधिकतम संख्या जिसे VARCHAR
. में संग्रहीत किया जा सकता है या वर्बिनरी
कॉलम 65,535 बाइट्स
. के अधिकतम पंक्ति आकार के अधीन है , जो सभी स्तंभों के बीच साझा किया जाता है।
उदाहरण के लिए, एक VARCHAR(255)
कॉलम में अधिकतम 255 वर्णों की एक स्ट्रिंग हो सकती है। यह मानते हुए कि कॉलम लैटिन 1 वर्ण सेट (प्रति वर्ण एक बाइट) का उपयोग करता है, आवश्यक वास्तविक भंडारण स्ट्रिंग की लंबाई (एल) की लंबाई है, साथ ही स्ट्रिंग की लंबाई रिकॉर्ड करने के लिए एक बाइट है। स्ट्रिंग के लिए 'abcd'
, एल
है 4
और भंडारण की आवश्यकता पांच बाइट्स है। यदि इसके बजाय उसी कॉलम को ucs2
. का उपयोग करने के लिए घोषित किया गया है डबल-बाइट कैरेक्टर सेट, स्टोरेज की आवश्यकता 10 बाइट्स है:'abcd' की लंबाई आठ बाइट्स है और कॉलम को लंबाई स्टोर करने के लिए दो बाइट्स की आवश्यकता होती है क्योंकि अधिकतम लंबाई 255 से अधिक है (510 बाइट्सकोड तक)> )
बड़े डेटा के लिए, TEXT
. का उपयोग करने पर विचार करें या बीएलओबी
. पाठ
और बीएलओबी
NDB
. में कॉलम अलग-अलग तरीके से लागू किए जाते हैं स्टोरेज इंजन, जिसमें प्रत्येक पंक्ति एक TEXT
. में होती है स्तंभ दो अलग-अलग भागों से बना है। इनमें से एक निश्चित आकार का है (256 बाइट्स)
, और वास्तव में मूल तालिका में संग्रहीत है। दूसरे में 256 बाइट्स
. से अधिक का कोई भी डेटा होता है , जो एक छिपी हुई तालिका में संग्रहीत है। इस दूसरी तालिका में पंक्तियाँ हमेशा 2,000 बाइट्स
होती हैं लंबा। इसका मतलब है कि एक TEXT
. का आकार कॉलम 256
है अगर आकार <=256
(जहां आकार पंक्ति के आकार का प्रतिनिधित्व करता है); अन्यथा, आकार 256 + आकार + (2000 - (आकार - 256)% 2000)
. है .
http://dev.mysql.com/doc/refman /5.6/hi/storage-requirements.html
आपके डेटाबेस संबंध पर निर्भर करता है, यदि आप शायद ही कभी उस फ़ील्ड का उपयोग क्वेरी में करते हैं। उदाहरण के लिए अतिरिक्त जानकारी के लिए। अलग टेबल बनाना अच्छा विकल्प है (सामान्य करें)।
नोट्स: VARCHAR
CHAR
. से अलग है . अगर आप VARCHAR(250)
बनाते हैं और केवल 20
insert डालें उस पर अक्षर तो यह 5 बाइट्स
लेगा + एल
CHAR(250)
. के साथ भिन्न , इसमें 250 बाइट्स
लगेंगे + एल
उसी स्थिति के लिए।