2011-03-25 10 views
5

माइस्क्ल एक विशेष (संभवतः अधिक प्रदर्शन करने वाला) तरीके से व्यवहार करता है when a table has no variable-width columnsपोस्टग्रेस प्रदर्शन: स्थिर पंक्ति लंबाई?

क्या पोस्टग्रेज़ का समान व्यवहार होता है? क्या एक तालिका में एकल चर-चौड़ाई कॉलम जोड़ना कोई बड़ा अंतर बनाता है?

+0

पर देखकर प्रतिस्थापित किया जा सकता है यदि उस लिंक का प्रयोग करने योग्य परीक्षण हो तो अच्छा हो। क्या आपके पास एक परीक्षण है कि आप इसका परीक्षण करने के लिए उपयोग करने के बारे में सोचेंगे? – Kuberchaun

उत्तर

7

postgres docs (read the tip) में दी गई सामान्य सलाह यह है कि परिवर्तनीय लंबाई फ़ील्ड अक्सर बेहतर प्रदर्शन करते हैं क्योंकि इसके परिणामस्वरूप कम डेटा होता है, इसलिए तालिका कम डिस्क ब्लॉक में फिट होती है और कैश मेमोरी में कम जगह लेती है। आधुनिक सीपीयू इतनी तेज हैं कि मेमोरी और डिस्क्स जो परिवर्तनीय लंबाई क्षेत्र के ऊपरी हिस्से में आईओ में कमी के लायक हैं।

ध्यान दें कि postgresql पंक्ति की शुरुआत में बिटमैप में नल मानों को संग्रहीत करता है और यदि मान शून्य है तो फ़ील्ड को छोड़ देता है। तो किसी भी शून्य कॉलम मूल रूप से एक चर चौड़ाई है। जिस तरह से postgresql डेटा को संग्रहीत करता है (Database page layout) सुझाव देता है कि अंतिम कॉलम पुनर्प्राप्त करना पहले कॉलम के बाद धीमा होगा। लेकिन यदि आपके पास कई कॉलम हैं और डेटा अधिकतर कैश में शुरू होता है तो इसका शायद एक उल्लेखनीय प्रभाव होगा। अन्यथा डिस्क io प्रमुख कारक होगा।

0

जो मैं जानता हूँ से, कोई ऐसा नहीं होता

चेक डेटाटाइप्स के बारे में सामान्य बात के लिए इस लिंक बाहर इस पढ़ने से मेरी निष्कर्ष जो कुछ विशेष व्यवहार mysql दर्शाती है, PostgreSQL नहीं है जो मेरे लिए अच्छा है। http://www.depesz.com/index.php/2010/03/02/charx-vs-varcharx-vs-varchar-vs-text/

+0

जब तक कि मैंने उन परीक्षणों में कुछ याद नहीं किया, परीक्षण वास्तव में निश्चित लंबाई डेटा के साथ किए जाते हैं। तो जब एक वर्चर (50) परीक्षण का परीक्षण करते हैं तो डेटा में 50 वर्ण होते हैं। जिसका अर्थ है कि ये परीक्षण वर्चर्स कॉलम के लिए सबसे खराब संभावित परिदृश्य हैं क्योंकि उन्हें कम मूल्यों के लिए कम डेटा स्टोर करने की क्षमता से लाभ नहीं होता है। – Eelke

0

शायद अधिक performant

मैं कभी भी किसी भी "प्रदर्शन मिथक" कभी विश्वास नहीं होगा जब तक मैं डेटा के अपने स्वयं के सेट के साथ और एक काम का बोझ है कि मेरे आवेदन के लिए विशिष्ट है के साथ यह परीक्षण करें।

आप अगर अपने काम का बोझ अपने डेटा के साथ डीबीएमएस एक्स पर काफी तेजी से है पता करने के लिए, की जरूरत है जो नंबर आप कि उत्पादन से मेल खाता है हार्डवेयर के साथ एक यथार्थवादी अपने वातावरण में बेंचमार्क से प्राप्त की तुलना में कुछ और मत देखो ।

किसी भी अन्य दृष्टिकोण को अच्छी क्रिस्टल बॉल

+0

मेरा विश्वास करो, मैं "प्रोफाइल, प्रोफाइल, प्रोफाइल" मंत्र कहने वाला पहला व्यक्ति हूं। अगर मैं इसे पूरी तरह से पीछा करता हूं, तो मैं काफी परीक्षण करूंगा। भले ही, सवाल खड़ा है: कुछ डेटाबेस में इस मामले के लिए विशिष्ट, विशेष व्यवहार है, और मैं जानना चाहता हूं कि पोस्टग्रेस उनमें से एक है या नहीं। यह किसी भी विशिष्ट वर्कलोड से स्वतंत्र, जानने के लिए एक उपयोगी बात है। –

+0

@ फ्रैंक: सवाल यह है: क्या इससे कोई फर्क पड़ता है? और एक बार कॉलम मान के लिए टोस्ट थ्रेसहोल्ड पार हो जाने के बाद, चीजें कम तुलनीय हो जाती हैं। –

+1

"जाओ उपाय" न तो वैध और न ही रचनात्मक है। -1 और बंद करने के लिए वोट। –

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