संभव डुप्लिकेट:
MySQL: Large VARCHAR vs. TEXT?जब VARCHAR mysql के बजाय में पाठ का उपयोग करने के
VARCHAR
के बाद से 65k बाइट्स अब, जब तब TEXT
VARCHAR
के बजाय इस्तेमाल किया जाना चाहिए हो सकता है?
संभव डुप्लिकेट:
MySQL: Large VARCHAR vs. TEXT?जब VARCHAR mysql के बजाय में पाठ का उपयोग करने के
VARCHAR
के बाद से 65k बाइट्स अब, जब तब TEXT
VARCHAR
के बजाय इस्तेमाल किया जाना चाहिए हो सकता है?
एक लंबा VARCHAR
TEXT
/BLOB
फ़ील्ड InnoDB
में उसी तरह से संग्रहीत किया जाता है।
के रूप में भंडारण भावी ब्लॉब, पाठ से अच्छी तरह से जब तक VARCHAR InnoDB द्वारा एक ही तरह से नियंत्रित किया जाता है। यही कारण है कि InnoDB मैनुअल यह कॉल "लंबे कॉलम" बल्कि BLOBs से है।
जब तक आप सूचकांक में ये कॉलम की जरूरत है (जिसमें मामले VARCHAR
बहुत तेजी से है) वहाँ लंबे क्षेत्रों के लिए TEXT
से अधिक VARCHAR
उपयोग करने के लिए कोई कारण नहीं है - वहाँ धुन पर MySQL
में कुछ इंजन विशिष्ट अनुकूलन कर रहे हैं लंबाई के अनुसार डेटा पुनर्प्राप्ति, और इन का लाभ उठाने के लिए आपको सही कॉलम प्रकार का उपयोग करना चाहिए।
यदि आप MyISAM
का उपयोग कर रहे हैं तो इस विषय पर गहन चर्चा here है।
TEXT
और BLOB
तालिका सिर्फ वास्तविक भंडारण के स्थान पर एक सूचक होने के साथ टेबल पर से जमा हो जाती है।
VARCHAR
तालिका के साथ इनलाइन संग्रहित है। आकार उचित होने पर VARCHAR
तेज है।
this test के अनुसार, VARCHAR
टेक्स्ट जितना तेज़ तीन गुना है।
"लंबा क्षेत्र" परिभाषित करें। –
@PaulBrewczynski> 768 बाइट्स InnoDB के लिए (देखें लिंक शेर पोस्ट) – delrox
एक सुधार: पाठ और ब्लॉब केवल तभी "लंबे" (> 768 बाइट्स) InnoDB में मेज से बाहर जमा हो जाती है, और केवल पूंछ तालिका (समान बंद संग्रहीत किया जाता है वचरर को)। वास्तविक अंतर अधिकतम लंबाई भिन्न है, और VARCHAR के साथ आपको अधिकतम लंबाई (65k की सिस्टम सीमा के साथ लागू) की आपूर्ति करनी होगी। – delrox
पाठ अनिश्चित लंबाई के बहुत लंबा तार के लिए इस्तेमाल किया जाना चाहिए। साथ ही, टेक्स्ट फ़ील्ड लौटने वाले प्रश्न उनके VARCHAR समकक्षों की तुलना में बहुत धीमे होते हैं।
मेरे डेटाबेस में, मेरे पास विवरण नामक एक कॉलम है। क्या डेटाटाइप एक वचर या टेक्स्ट होना चाहिए? मुझे यकीन नहीं है कि वर्णन डेटा कितना समय होगा, लेकिन मैं फ्रंट एंड पर शब्द गणना सीमा लगाने की योजना बना रहा हूं, इसलिए इसकी अधिकतम लंबाई होगी। – codeinprogress
आप एक से अधिक 65k पात्रों की जरूरत है। :) – GordonM
यह 65k * बाइट्स होना चाहिए *, अक्षर नहीं, मुझे लगता है कि – davek
ओह, हाँ। 65k बाइट्स मेरा प्रश्न अपडेट किया गया। – enchance