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

क्या JSONB PostgreSQL सरणियों को बेकार बनाता है?

ज्यादातर मामलों में मैं एक सामान्यीकृत स्कीमा का उपयोग करूंगा। एक टेबल के साथ option_tag तालिकाओं के बीच कई-से-अनेक संबंध लागू करना option और tag . संदर्भ कार्यान्वयन यहां:

यह हर लिहाज से सबसे तेज़ विकल्प नहीं हो सकता है, लेकिन यह संदर्भात्मक अखंडता, बाधाओं, डेटा प्रकारों की पूरी श्रृंखला, सभी इंडेक्स विकल्प और सस्ते अपडेट सहित डीबी कार्यक्षमता की पूरी श्रृंखला प्रदान करता है।

पूर्णता के लिए, अपने विकल्पों की सूची में जोड़ें:

  • hstore (अच्छा विकल्प)
  • xml hstore . की तुलना में अधिक क्रियात्मक और अधिक जटिल या jsonb , इसलिए मैं इसका उपयोग केवल XML के साथ संचालन करते समय करूंगा।
  • "अल्पविराम द्वारा अलग किए गए मानों की स्ट्रिंग" (बहुत ही सरल, अधिकतर खराब विकल्प)
  • ईएवी (इकाई-विशेषता-मूल्य) या "नाम-मूल्य जोड़े" (ज्यादातर खराब विकल्प)
    dba.SE पर इस संबंधित प्रश्न के तहत विवरण:

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

पढ़ें जोश बर्कस की ब्लॉग प्रविष्टि @a_horse उनकी टिप्पणी में जुड़ा हुआ है। लेकिन ध्यान रखें कि यह चयनित पठन मामलों पर केंद्रित है। जोश मानते हैं:

और यहीं पर सामान्यीकृत दृष्टिकोण बड़ी जीत हासिल करता है, खासकर जब आप समवर्ती लोड के तहत एकल टैग को बहुत अधिक बदलते हैं।

jsonb यदि आप वैसे भी JSON के साथ काम करने जा रहे हैं, तो केवल एक अच्छा विकल्प है, और JSON "जैसा है" को संग्रहीत और पुनर्प्राप्त कर सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हम किसी फ़ंक्शन के अंदर "statement_timeout" कैसे काम कर सकते हैं?

  2. देव स्नैपशॉट के लिए टेबल के केवल कुछ हिस्सों के डंप को पोस्टग्रेज करता है

  3. पोस्टग्रेएसक्यूएल एग्रीगेट फंक्शन ओवर रेंज

  4. Linux पर PostgreSQL initdb (डेटाबेस आरंभीकरण)

  5. 64 बिट पायथन और ओडीबीसी ड्राइवर के साथ 32 बिट .एमडीबी से कैसे पढ़ा जाए?