सबसे पहले, hstore
एक योगदान मॉड्यूल है, जो आपको केवल कुंजी => मान जोड़े को संग्रहीत करने की अनुमति देता है, जहां कुंजी और मान केवल text
हो सकते हैं s (हालांकि मान sql हो सकते हैं NULL
एस भी)।
दोनों json
&jsonb
आपको एक मान्य JSON मान स्टोर करने की अनुमति देता है (इसकी कल्पना में परिभाषित)।
एफ.ई.एक्स. ये मान्य JSON प्रतिनिधित्व हैं:null
, true
, [1,false,"string",{"foo":"bar"}]
, {"foo":"bar","baz":[null]}
- hstore
JSON जो सक्षम है उसकी तुलना में बस एक छोटा सा सबसेट है (लेकिन अगर आपको केवल इस सबसेट की आवश्यकता है, तो यह ठीक है)।
json
. के बीच एकमात्र अंतर &jsonb
उनका भंडारण है:
json
अपने सादे पाठ प्रारूप में संग्रहीत किया जाता है, जबकिjsonb
कुछ बाइनरी प्रतिनिधित्व में संग्रहीत है
इसके 3 प्रमुख परिणाम हैं:
jsonb
आमतौर परjson
. की तुलना में स्टोर करने के लिए अधिक डिस्क स्थान लेता है (कभी-कभी नहीं)jsonb
json
. की तुलना में इसके इनपुट प्रतिनिधित्व से निर्माण में अधिक समय लगता हैjson
संचालन काफी लेता हैjsonb
. से अधिक समय (और हर बार जब आपjson
. पर कुछ ऑपरेशन करते हैं तो पार्सिंग भी की जानी चाहिए टाइप किया गया मान)
जब jsonb
एक स्थिर रिलीज के साथ उपलब्ध होगा, दो प्रमुख उपयोग के मामले होंगे, जब आप आसानी से उनके बीच चयन कर सकते हैं:
- यदि आप अपने एप्लिकेशन में केवल JSON प्रतिनिधित्व के साथ काम करते हैं, तो PostgreSQL का उपयोग केवल इस प्रतिनिधित्व को संग्रहीत और पुनर्प्राप्त करने के लिए किया जाता है, आपको
json
का उपयोग करना चाहिए । - यदि आप PostgreSQL में JSON मान पर बहुत अधिक संचालन करते हैं, या कुछ JSON फ़ील्ड पर अनुक्रमण का उपयोग करते हैं, तो आपको
jsonb
का उपयोग करना चाहिए ।