मान लें कि आप वास्तविक, सख्त JSON के बारे में बात कर रहे हैं (बिना उद्धरण वाली कुंजियों के बिना)...
json
text
. से बहुत अलग नहीं है . यह JSON को सत्यापित करने . के अलावा बहुत कुछ नहीं करता है ।
jsonb
इन दोनों की तुलना में एक अलग जानवर है:यह अपने स्वयं के आंतरिक प्रारूप के साथ एक पूर्ण डेटा संरचना है जिसमें खोजों में बहुत अधिक संचालन उपलब्ध हैं। उदाहरण के लिए json
कोई लागू नहीं है =
(समानता ऑपरेटर)। jsonb
है। (text
है भी, भले ही यह शब्दार्थ रूप से भिन्न है।)
यह अनुक्रमणिका के लिए अधिक समझदार है, लेकिन इसे पढ़ने और लिखने के दौरान आगे और पीछे बदलना पड़ता है।
यह देखते हुए, jsonb
यहाँ एक ध्वनि विकल्प की तरह नहीं लग रहा है।
... इसलिए केवल एक ही निर्णय करना बाकी है:
क्या आप यह सुनिश्चित करना चाहते हैं कि आपके डेटाबेस में आपके कॉलम में केवल मान्य JSON मान हैं? डेटाबेस स्तर पर? या क्या आप उस डेटाबेस के प्रत्येक क्लाइंट पर भरोसा करते हैं (सर्वर ऐप्स, आमतौर पर) केवल वैध डेटा की आपूर्ति करने के लिए?
json
किसी भी तरह से अपेक्षाकृत सुरक्षित विकल्प है। text
का उपयोग करना सत्यापन के अभाव के कारण सैद्धांतिक रूप से एक नगण्य अंतर से प्रदर्शन में सुधार हो सकता है, लेकिन आपको बेंचमार्किंग द्वारा केवल विशिष्ट संख्याएँ प्राप्त होंगी। लेकिन इसमें गैर-JSON मूल्यों के विरुद्ध सुरक्षा नहीं होगी, और क्लाइंट में एक आकस्मिक बग किसी का ध्यान नहीं जा सकता है। जिम्मेदारी से परीक्षण करें!