2010-09-15 11 views
8

मैंने PostgreSQL में डेटाबेस बनाया है, चलो इसे testdb पर कॉल करें।क्या PostgreSQL डेटाबेस में टेबल की संख्या पर कोई सीमा है?

मैं, इस डेटाबेस के अंदर टेबल के एक सामान्य सेट है xxx_table_one, xxx_table_two और xxx_table_three

अब, मेरे पास पाइथन कोड है जहां मैं अपने डेटाबेस में इन 3 टेबलों के "सेट" को गतिशील रूप से बनाना और निकालना चाहता हूं, तालिका नाम में एक अद्वितीय पहचानकर्ता के साथ एक दूसरे से अलग "सेट" को अलग करना, उदा।

सेट 1
testdb.aaa_table_one
testdb.aaa_table_two
testdb.aaa_table_three

सेट 2
testdb.bbb_table_one
testdb.bbb_table_two
testdb.bbb_table_three

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

मैं जानना चाहता हूँ, कुछ चीजें

डेटाबेस प्रति तालिकाओं की संख्या
  1. करता PostgreSQL सीमा?
  2. 1 डेटाबेस में बड़ी संख्या में टेबल रखने के प्रदर्शन पर प्रभाव क्या है, यदि कोई है?
  3. उन सभी को एक ही सेट में सहेजने के बजाय तालिकाओं के विभिन्न सेटों में डेटा संग्रह को सहेजने के प्रदर्शन पर प्रभाव क्या है, उदा। मुझे लगता है कि अगर मैं टेबल के केवल 1 सेट की तुलना में डेटा भर में फैला हुआ हूं, तो मैं कई डेटा संग्रहों को एक साथ पूछना चाहता हूं, तो मुझे और प्रश्न पूछने की आवश्यकता होगी।
+1

"बड़ा" परिभाषित करें। टेबल बनाना और छोड़ना आम तौर पर लेने का गलत तरीका है। – mpen

+5

करो। नहीं। कर। इस। यह एक भयानक डिजाइन हैक है। बहुत से लोग इसे आजमाते हैं - हर कोई जो इसे करने की कोशिश करता है उसे खेद है। टेबल के अंदर कॉलम के रूप में महत्वपूर्ण मानों का उपयोग करें; इस तरह की टेबल मत बनाओ। –

+0

बड़े 1,000,000 - 10,000,000 रिकॉर्ड हो सकते हैं। इतना बड़ा नहीं है, लेकिन प्रत्येक डेटा संग्रह एक पूर्व-संसाधित डेटा संग्रह महीने में एक या दो बार अपडेट किया जाता है। – sizeight

उत्तर

14

पोस्टग्रेएसक्यूएल में कई सीमाएं नहीं हैं, आपका हार्डवेयर अधिक सीमित है, जहां आप सबसे अधिक समस्याओं का सामना करते हैं। http://www.postgresql.org/about/

आपके पास एक डेटाबेस में 2^32 टेबल हो सकते हैं, केवल 4 बिलियन से अधिक।

+0

इस प्रतिक्रिया में उल्लिखित निष्कर्ष एक पोस्टग्रेएसक्यूएल समुदाय योगदानकर्ता के शोध का एक क्रेडिट है [पीजीकॉन 2013] (http://www.pgcon.org/2013/schedule/attachments/283_Billion_Tables_Project-PgCon2013.pdf) – pazfernando

2
  1. PostgreSQL इस पर सीधा सीमा लागू नहीं है, अपने OS करता है (यह अधिकतम निर्देशिका आकार पर निर्भर करता है)
  2. यह आपके ओएस पर साथ ही निर्भर हो सकता है। कुछ फाइल सिस्टम बड़ी निर्देशिकाओं के साथ धीमे हो जाते हैं।
  3. पोस्टग्रेएसक्यूएल क्वेरीज को अनुकूलित करने में सक्षम नहीं होगा अगर वे अलग-अलग तालिकाओं में हैं। इसलिए कम टेबल (या एक टेबल) का उपयोग करना अधिक कुशल होना चाहिए
0

यदि आपका डेटा संबंधित नहीं था, तो मुझे लगता है कि आपकी टेबल अलग-अलग स्कीमा में हो सकती है, और फिर आप उदाहरण के लिए SET search_path TO schema1, public का उपयोग करेंगे, इस तरह आपको अपने प्रश्नों में तालिका नामों को गतिशील रूप से उत्पन्न नहीं करना होगा। मैं इस संरचना को बड़े डेटाबेस पर आज़माने की योजना बना रहा हूं जो लॉग और अन्य ट्रैकिंग जानकारी संग्रहीत करता है।

यदि आपके पास ओएस की सीमा है या बड़ी निर्देशिका आकार से पीड़ित है तो आप अपना tablespace भी बदल सकते हैं।

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

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