JSONB बनाम JSON: किसका उपयोग करें
सही स्टोरेज के लिए JSON (पाठ, रिक्त स्थान सुरक्षित रखता है) और JSONB (बाइनरी, इंडेक्स योग्य, डुप्लिकेट कुंजियाँ हटाता है) में से चुनें
JSONB बनाम JSON: किसका उपयोग करें, CoddyKit पर SQL Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह SQL Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
PostgreSQL में JSON के दो प्रकार
JSON— आपके द्वारा डाला गया सटीक पाठ संग्रहीत करता हैJSONB— विघटित बाइनरी प्रारूप, दोहराई गई कुंजियाँ हटाई गईं, इंडेक्स योग्य
JSON: पाठ संग्रहण
JSON रिक्त स्थान, कुंजियों का क्रम और दोहराई गई कुंजियाँ सुरक्षित रखता है। हर पठन पर इसे फिर से पार्स करना पड़ता है। GIN इंडेक्सिंग उपलब्ध नहीं है। नए कोड के लिए लगभग कभी भी यह सही विकल्प नहीं होता।
INSERT INTO docs (data) VALUES ('{"a": 1, "a": 2}'::JSON);
SELECT data->'a' FROM docs; -- whatever the parser picksJSONB: बाइनरी और इंडेक्स योग्य
JSONB:
- विघटित रूप में संग्रहीत → पठन के समय दोबारा पार्स करने की आवश्यकता नहीं
- दोहराई गई कुंजियाँ मिला दी जाती हैं (अंतिम मान प्रभावी होता है)
- कुंजियों का क्रम सुरक्षित नहीं रहता
- GIN इंडेक्सिंग का समर्थन करता है
- समृद्ध पथ ऑपरेटरों का समर्थन करता है
JSONB का उदाहरण
एक सरल इवेंट तालिका:
CREATE TABLE events (
id BIGSERIAL PRIMARY KEY,
ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
data JSONB NOT NULL
);
INSERT INTO events (data) VALUES
('{"type":"login","user_id":42,"ip":"1.2.3.4"}');पथ ऑपरेटर
JSONB में समृद्ध ऑपरेटर हैं (अगले पाठ में समझाए गए हैं):
SELECT data->'user_id' FROM events; -- → JSONB
SELECT data->>'user_id' FROM events; -- → TEXT
SELECT data #>> '{user,name}' FROM events; -- nested text pathसमावेशन
सबसे उपयोगी JSONB ऑपरेटर: @> (समाहित करता है)।
SELECT * FROM events WHERE data @> '{"type":"login"}';
-- Combined with a GIN index, this is fast even on billions of rows.JSONB की समानता
दो JSONB मान तब समान होते हैं जब उनकी सामग्री समान हो — कुंजियों का क्रम मायने नहीं रखता:
SELECT '{"a":1,"b":2}'::JSONB = '{"b":2,"a":1}'::JSONB; -- TRUEप्रकारों के बीच रूपांतरण
स्वतंत्र रूप से रूपांतरित करें:
SELECT '{"a":1}'::JSONB->'a'; -- 1 (as JSONB)
SELECT ('{"a":1}'::JSONB)->>'a'; -- '1' (as TEXT)
SELECT ('{"a":1}'::JSONB)->'a'::INT; -- 1 (as INT after extraction)JSONB का उपयोग कब न करें
यदि डेटा का आकार निश्चित है, तो वास्तविक कॉलम का उपयोग करें:
- तेज़ क्वेरी (हर पंक्ति में दस्तावेज़ को पार्स करने की आवश्यकता नहीं)
- मज़बूत प्रकार और बाध्यताएँ
- कम संग्रहण
- बेहतर आँकड़े
जब आकार बदलता रहे या तेज़ी से विकसित हो, तब JSONB सबसे उपयोगी होता है।
हाइब्रिड मॉडलिंग
सर्वोत्तम तरीका: स्थिर फ़ील्ड के लिए संरचित कॉलम और बदलने वाले अतिरिक्त डेटा के लिए JSONB:
CREATE TABLE events (
id BIGSERIAL PRIMARY KEY,
ts TIMESTAMPTZ NOT NULL,
event_type TEXT NOT NULL,
user_id BIGINT,
extra JSONB NOT NULL DEFAULT '{}'::JSONB
);सत्यापन
JSONB किसी भी मान्य JSON को संग्रहीत करता है। संरचित बाध्यताओं के लिए CHECK बाध्यताओं या ऐप स्तर पर स्कीमा लागू करने का उपयोग करें:
ALTER TABLE events
ADD CONSTRAINT data_has_type CHECK (data ? 'type');पुनरावलोकन
लगभग सभी उत्पादन स्थितियों में JSONB, JSON से बेहतर है।
- JSONB: बाइनरी, इंडेक्स किया हुआ, तेज़ पथ
- JSON: केवल पाठ का उसी रूप में आना-जाना
- बदलते आकार के लिए JSONB और निश्चित आकार के लिए वास्तविक कॉलम का उपयोग करें
त्वरित जाँच
आप ऐसी नई तालिका बना रहे हैं जिसमें उपयोगकर्ताओं द्वारा अपलोड किए गए JSON दस्तावेज़ संग्रहीत होंगे और आप उनकी सामग्री के आधार पर क्वेरी करेंगे। JSON या JSONB?
एआई शिक्षक के साथ SQL सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 46
- पाठ
- 183
अक्सर पूछे जाने वाले प्रश्न
क्या “JSONB बनाम JSON: किसका उपयोग करें” पाठ निःशुल्क है?
हाँ—“JSONB बनाम JSON: किसका उपयोग करें” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और SQL Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“JSONB बनाम JSON: किसका उपयोग करें” में मैं क्या सीखूँगा?
सही स्टोरेज के लिए JSON (पाठ, रिक्त स्थान सुरक्षित रखता है) और JSONB (बाइनरी, इंडेक्स योग्य, डुप्लिकेट कुंजियाँ हटाता है) में से चुनें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ SQL Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या SQL Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर SQL Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“JSONB बनाम JSON: किसका उपयोग करें” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस SQL Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर SQL Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- JSONB बनाम JSON: किसका उपयोग करें
- पाथ ऑपरेटर: -> ->> @>
- GIN से JSONB इंडेक्स करना
- मॉडलिंग: JSONB सामान्यीकरण से कब बेहतर है