2011-09-29 15 views
5

CHAR एक निश्चित लंबाई स्ट्रिंग के रूप में संग्रहीत किया जाता है, VARCHAR एक परिवर्तनीय लंबाई स्ट्रिंग के रूप में संग्रहीत किया जाता है। मैं एक निश्चित लंबाई स्ट्रिंग को स्टोर करने के लिए VARCHAR का उपयोग कर सकता हूं, लेकिन क्यों लोग अभी भी एक निश्चित लंबाई स्ट्रिंग को स्टोर करने के लिए CHAR का उपयोग करना चाहते हैं? VARCHAR पर CHAR का उपयोग करने का कोई फायदा है? यदि कोई लाभ नहीं है, तो MySQL डेटाबेस CHAR के विकल्प को क्यों नहीं हटाता है?VARCHAR पर CHAR का उपयोग करने का कोई लाभ?

+0

http://stackoverflow.com/questions/59667/why-would-i-ever-pick-char-over-varchar-in-sql –

+0

http://stackoverflow.com/questions/350195/char-vs -वर्तक-के-प्रदर्शन-इन-स्टॉक-डेटाबेस –

+0

ओप, डुप्लिकेट प्रश्न के लिए खेद है। जवाब मिला। लिंक के लिए धन्यवाद। – zac1987

उत्तर

5
  • VARCHAR

varchar भंडार चर लंबाई चरित्र स्ट्रिंग। इसे निश्चित-लंबाई वाले प्रकारों से कम भंडारण की आवश्यकता हो सकती है क्योंकि यह केवल उतनी ही जगह का उपयोग करती है जितनी इसकी आवश्यकता होती है।

वर्कर भी मूल्य की लंबाई रिकॉर्ड करने के लिए 1 या 2 अतिरिक्त बाइट्स का उपयोग करता है। उदाहरण के लिए वर्कर (10) भंडारण स्थान के 11 बाइट तक उपयोग करेगा। वर्कर प्रदर्शन में मदद करता है क्योंकि यह अंतरिक्ष बचाता है। हालांकि पंक्तियां परिवर्तनीय लंबाई हैं, इसलिए जब आप उन्हें अपडेट करते हैं तो वे बढ़ सकते हैं, जिससे अतिरिक्त कार्य हो सकता है। अगर एक पंक्ति बढ़ता है और अब उसके मूल स्थान में फिट बैठता है, व्यवहार भंडारण इंजन पर निर्भर है ...

  • CHAR

चार है निश्चित लंबाई, mysql हमेशा के लिए पर्याप्त स्थान निर्दिष्ट के लिए आवंटित पात्रों की संख्या। एक CHAR मान संग्रहीत करते समय, MySQL किसी भी पिछली जगह को हटा देता है। तुलनाओं के लिए आवश्यक रिक्त स्थान के साथ मूल्यों को गद्देदार किया जाता है।

char उपयोगी है यदि आप बहुत कम तारों को स्टोर करना चाहते हैं, या यदि सभी मान लगभग समान लंबाई हैं। उदाहरण के लिए, CHAR उपयोगकर्ता पासवर्ड के लिए MD5 मानों के लिए एक अच्छा विकल्प है, जो हमेशा एक ही लंबाई होती है।

char VARCHAR से डेटा के लिए भी बेहतर है जो अक्सर बदलता है, क्योंकि एक निश्चित लंबाई पंक्ति विखंडन के लिए प्रवण नहीं होती है।

+0

अब मैं अक्सर अद्यतन मूल्य के बारे में CHAR का लाभ देखता हूं। आपका बहुत बहुत धन्यवाद। – zac1987

+0

सिडेनोट: मैं यह नहीं कहूंगा कि चार एमडी 5 हैश, या वास्तव में किसी भी हैश के लिए एक अच्छा विकल्प है। उन्हें हेक्साडेसिमल की तरह एक अलग एन्कोडिंग के बजाय बाइनरी प्रारूप में संग्रहीत किया जाना चाहिए। – Luc

+0

मेरा मानना ​​है कि यह लुकअप के लिए तेज़ है, क्योंकि डेटाबेस जानता है कि लंबाई गणना करने के बजाय तुरंत कहां जाना है, यह शायद इन दिनों बहुत ध्यान देने योग्य नहीं हो सकता है –

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