PostgreSQL में "varchar" और "text" प्रकार के बीच क्या अंतर है?


15

मुझे उन सभी के अंतर के बारे में पता है varcharजिनकी सीमा है, और textनहीं है। प्रलेखन इस बारे में उल्लेख नहीं है।

क्या वास्तव में केवल यही अंतर है? प्रदर्शन या आदि के बारे में कोई विचार नहीं?


1
यह वास्तव में डेटाबेस व्यवस्थापकों के लिए माइग्रेट किया जाना चाहिए । यह सर्वर प्रशासन के साथ कुछ भी नहीं है।
इवान कैरोल

जवाबों:


22

इसकी पृष्ठभूमि यह है: पुराने पोस्टग्रेज सिस्टम ने पोस्टक्वल भाषा का इस्तेमाल किया और एक डेटा प्रकार का उपयोग किया जिसका नाम है text(क्योंकि किसी ने सोचा था कि यह एक प्रकार का अच्छा नाम है जो पाठ को संग्रहीत करता है)। तब, Postgres SQL को अपनी भाषा के रूप में उपयोग करने के लिए परिवर्तित किया गया था। SQL संगतता प्राप्त करने के लिए, textप्रकार का नाम बदलने के बजाय , एक नया प्रकार varcharजोड़ा गया था। लेकिन दोनों प्रकार आंतरिक रूप से समान सी दिनचर्या का उपयोग करते हैं।

अब, कुछ हद तक और कुछ स्थानों पर, textएक डिफ़ॉल्ट प्रकार के रूप में हार्डकोड किया जाता है, अगर मामले में कुछ और नहीं निकाला जा सकता है। इसके अलावा, अधिकांश फ़ंक्शन केवल एक textतर्क लेने या लौटने के रूप में उपलब्ध हैं text। दो प्रकार द्विआधारी संगत हैं, इसलिए कास्टिंग एक तुच्छ पार्स-टाइम ऑपरेशन है। लेकिन textसिस्टम का उपयोग करना अभी भी स्वाभाविक है।

लेकिन इन बारीक बिंदुओं से अलग, ध्यान देने योग्य अंतर नहीं है। जो भी आपको अच्छा लगे, उसका उपयोग करें। ;-)


ओह अच्छा स्पष्टीकरण। मैं 'पाठ' का उपयोग करूँगा क्योंकि मुझे उस अनुकूलता की परवाह नहीं है जो विशिष्ट उत्पाद के लाभ का उपयोग करते हुए ब्लॉक करता है। धन्यवाद!
Eonil

1

इसी तरह का प्रश्न देखें । जिस्ट यह है कि कोई अंतर नहीं है, लेकिन अधिकतम लंबाई निर्दिष्ट करना जैसे कि varchar(n)आमतौर पर आपके पक्ष में नहीं है, क्योंकि यह अधिक स्थान का उपयोग करता है लेकिन प्रदर्शन में सुधार नहीं करता है।


0

http://www.postgresql.org/docs/8.4/interactive/datatype-character.html

character varying(n), varchar(n)        variable-length with limit
text                                    variable unlimited length

घोषित लंबाई के बिना पाठ। इन दो प्रकारों के बीच कोई प्रदर्शन अंतर नहीं हैं।


5
आप () भाग के बिना भी varchar का उपयोग कर सकते हैं, जो इसे असीमित लंबाई के साथ-साथ पाठ के साथ कम या ज्यादा समतुल्य बनाएगा।
मैग्नस हैगनर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.