सेटिंग NOT NULL
प्रदर्शन पर प्रति से कोई प्रभाव नहीं पड़ता है। चेक के लिए कुछ चक्र - अप्रासंगिक।
लेकिन आप वास्तव में डमी मूल्यों के बजाय एनयूएलएल का उपयोग करके प्रदर्शन में सुधार कर सकते हैं। डेटा प्रकारों के आधार पर, आप डिस्क स्थान और RAM की बहुत बचत कर सकते हैं , जिससे गति तेज हो .. सब कुछ।
नल बिटमैप केवल तभी आवंटित किया जाता है जब पंक्ति . में कोई NULL मान हो . यह हर के लिए एक बिट है पंक्ति में कॉलम (NULL या नहीं)। टपल हेडर और पंक्ति डेटा के बीच एक अतिरिक्त बाइट का उपयोग करते हुए, 8 कॉलम तक की तालिकाओं के लिए नल बिटमैप प्रभावी रूप से पूरी तरह से मुक्त है। उसके बाद, MAXALIGN
. के गुणकों में स्थान आवंटित किया जाता है (आमतौर पर 8 बाइट्स, 64 कॉलम को कवर करते हुए)। पैडिंग के लिए अंतर खो गया है। तो आप प्रत्येक पंक्ति में पहले NULL मान . के लिए पूर्ण (कम!) मूल्य का भुगतान करते हैं . अतिरिक्त NULL मान केवल स्थान बचा सकते हैं।
किसी भी गैर-शून्य मान के लिए न्यूनतम संग्रहण आवश्यकता 1 बाइट है (boolean
, "char"
, ...) या आमतौर पर बहुत अधिक, प्लस (संभवतः) संरेखण के लिए पैडिंग। डेटा प्रकार
पर पढ़ें या सिस्टम टेबल pg_type
. में खूनी विवरण की जांच करें ।
शून्य संग्रहण के बारे में अधिक जानकारी: