2011-04-13 12 views
13

वास्तव में एक त्वरित - क्या यह डेटा स्टोर करने के लिए अधिक कुशल है जो MySQL में CHAR (2) या VARCHAR (2) के रूप में एक या दो अक्षर हो सकता है?जो एक या दो-वर्ण वाली स्ट्रिंग के लिए अधिक कुशल है: CHAR (2) या VARCHAR (2)?

धन्यवाद!

+0

दो डेटा प्रकार समकक्ष नहीं हैं। क्या आप पूछ रहे हैं कि सटीक-2-वर्ण तारों को स्टोर करने के लिए कौन सा अधिक कुशल है? – Matthew

उत्तर

19

आवश्यक भंडारण स्थान के संदर्भ में, आप CHAR साथ बेहतर कर रहे हैं (2) क्योंकि VARCHAR (2) टाइप लंबाई स्टोर करने के लिए एक अतिरिक्त बाइट की आवश्यकता होगी:

 
Value CHAR(2) Storage Required VARCHAR(2) Storage Required 
''  ' '  2 bytes   ''   1 byte   
'a'  'a '  2 bytes   'a'   2 bytes   
'ab' 'ab'  2 bytes   'ab'  3 bytes   

अधिक जानकारी के लिए देखें 10.4.1. The CHAR and VARCHAR Types

अधिक जानकारी: What's the difference between VARCHAR and CHAR?

+1

तालिका के लिए +1 – reggie

4

अंतरिक्ष के संदर्भ में, CHAR (2) बेहतर है। इसे देखें: http://dev.mysql.com/doc/refman/5.0/en/char.html

यदि आपके पास CHAR (100) बनाम VARCHAR (100) की तरह लंबा था, जो अंतरिक्ष उपयोग में बेहतर है, आपके पास मौजूद डेटा पर निर्भर करता है।

किसी भी मामले में, प्रश्नों की प्रभावशीलता के मामले में, हमेशा एक अच्छा विचार है जब आप उन्हें प्राप्त कर सकते हैं (डीबी निश्चित लंबाई कॉलम के लिए बेहतर अनुकूलित कर सकते हैं)।

तो CHAR (2) अंतरिक्ष और समय के मामले में VARCHAR (2) पर जीत की तरह दिखता है।

0

हालांकि, मैं पूछता हूं कि वर्चर और चार के बीच दक्षता अंतर है? लगता है कि किसी भी प्रदर्शन लाभ, सबसे अच्छा, नगण्य होगा।

+1

यह एक उत्तर से अधिक टिप्पणी है ... यह एक फर्क पड़ता है या नहीं, यह उपयोग के मामले पर निर्भर करेगा। 2 की लंबाई के साथ, VARCHAR2 के लिए प्रति फ़ील्ड संग्रहण पर 50% ओवरहेड है। यदि वहां बड़ी संख्या में समान फ़ील्ड और पंक्तियां हैं, तो यह तेजी से बढ़ना शुरू हो जाएगा। – forsvarir

0

स्टोरेज में, VARCHAR(255)CHAR(255) के विपरीत, जो आपको केवल 255 वर्णों को स्टोर करेगा, केवल एक पंक्ति पर आपको आवश्यक लंबाई को स्टोर करने के लिए पर्याप्त स्मार्ट है।

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