PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Postgresql DB का उपयोग करके NULL मान को संग्रहीत करने के लिए कितने डिस्क-स्थान की आवश्यकता है?

Laramie बिटमैप के बारे में सही है और वह मैनुअल में सही जगह से लिंक करता है। फिर भी, यह लगभग है, लेकिन बिल्कुल सही नहीं है:

<ब्लॉकक्वॉट>

तो किसी भी पंक्ति के लिए एक या अधिक नल के साथ, इसमें जोड़ा गया आकार बिटमैप (एन-कॉलम तालिका के लिए एन बिट्स, गोलाकार) होगा।

डेटा संरेखण में एक कारक होना चाहिए। HeapTupleHeader (प्रति पंक्ति) 23 बाइट लंबा है, वास्तविक कॉलम डेटा हमेशा MAXALIGN . के गुणज से शुरू होता है (आमतौर पर 8 बाइट्स)। यह पैडिंग के एक बाइट को छोड़ देता है जिसका उपयोग नल बिटमैप द्वारा किया जा सकता है। वास्तव में न्यूल स्टोरेज 8 कॉलम तक की टेबल के लिए बिल्कुल मुफ्त है

उसके बाद, एक और MAXALIGN (आमतौर पर 8) बाइट्स अगले MAXALIGN * 8 . के लिए आवंटित किए जाते हैं (आमतौर पर 64) कॉलम। आदि हमेशा उपयोगकर्ता कॉलम की कुल संख्या के लिए (सभी या कुछ नहीं ) लेकिन केवल तभी जब पंक्ति में कम से कम एक वास्तविक NULL मान हो।

मैंने उन सभी को सत्यापित करने के लिए व्यापक परीक्षण किए। अधिक विवरण:

  • क्या PostgreSQL में NULL का उपयोग अभी भी हेडर में NULL बिटमैप का उपयोग नहीं करता है?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:मैं उपयोगकर्ता स्तर पर search_path कैसे सेट करूं?

  2. PostgreSQL में माइग्रेट करने के लिए सर्वश्रेष्ठ ETL उपकरण

  3. PostgreSQL सीरियल प्रकार के लिए हाइबरनेट एनोटेशन

  4. क्रम में अनुक्रम पीढ़ी

  5. मैं अपने मौजूदा रेल ऐप को उसकेोकू पर कैसे स्थानांतरित करूं? (एसक्लाइट पोस्टग्रेज करने के लिए)