2011-08-19 15 views
46

मुझे आश्चर्य है, अगर मेरे पास 200 अक्षरों का वर्चर है और मैंने 100 वर्णों की एक स्ट्रिंग डाली है, तो क्या यह 200 बाइट्स का उपयोग करेगी या यह केवल स्ट्रिंग के वास्तविक आकार का उपयोग करेगी?MySQL VARCHAR आकार?

+0

डुप्लिकेट: http://stackoverflow.com/questions/1962310/importance-of-varchar-length-in-mysql-table –

+0

एक विस्तार ब्लॉग: http://goo.gl/Hli6G3 –

उत्तर

67

100 वर्ण।

यह varchar में वर (चर) है: आप केवल स्टोर जो आप दर्ज (और 65535 तक दुकान लंबाई के लिए एक अतिरिक्त 2 बाइट्स)

यदि ऐसा हुआ char(200) तो आप हमेशा 200 अक्षरों की दुकान करता हूँ , "The CHAR and VARCHAR Types"

+3

बाइट्स नहीं बल्कि चार्स :) – Karolis

+9

स्पष्ट होने के लिए: 'वर्कर (200)' फ़ील्ड में एक स्ट्रिंग 100 वर्णों को संग्रहीत करने से 101 बाइट्स ले जाएंगे। 'वर्कर (256)' फ़ील्ड में 100 वर्णों की स्ट्रिंग को संग्रहीत करने से 102 बाइट्स ले जाएंगे। यही कारण है कि आप 'वर्कर (255)' इतनी बार देखते हैं; 255 वर्ण सबसे लंबी स्ट्रिंग है जिसे आप MySQL के 'वर्कर' प्रकार में स्टोर कर सकते हैं, केवल ओवरहेड के एक बाइट के साथ। किसी भी चीज को ओवरहेड के दो बाइट की आवश्यकता होती है। – rinogo

+0

@rinogo क्या यह चरित्र सेट पर निर्भर नहीं है? क्या आप एएससीआईआई या क्या मान रहे हैं? – mpen

8

VARCHAR मतलब है कि यह एक चर लंबाई चरित्र है, इसलिए इसमें केवल एक लेने के लिए जा रहा है: 100 रिक्त स्थान

देखें डॉक्स के साथ गद्देदार आवश्यकतानुसार ज्यादा जगह है। लेकिन यदि आप अंतर्निहित संरचना के बारे में कुछ जानते थे, तो यह अधिकतम अधिकतम राशि के लिए VARCHAR को प्रतिबंधित करने का अर्थ हो सकता है।

उदाहरण के लिए, यदि आप उपयोगकर्ता से टिप्पणियां संग्रहीत कर रहे थे, तो आप टिप्पणी फ़ील्ड को केवल 4000 वर्णों तक सीमित कर सकते हैं; यदि ऐसा है, तो यह वास्तव में एसक्यूएल तालिका को फ़ील्ड बनाने के लिए कोई समझ नहीं लेता है जो VARCHAR (4000) से बड़ा है।

http://dev.mysql.com/doc/refman/5.0/en/char.html

4

असल में, यह 101 बाइट्स लेता है।

MySQL Reference

+0

वर्णों के आकार पर निर्भर करता है। – OdraEncoded

संबंधित मुद्दे