পোস্টগ্রেএসকিউএল জেএসএন ডেটা সংরক্ষণের জন্য দুটি ধরণের অফার দেয়: json
এবং jsonb
। এই ডেটা ধরণের জন্য দক্ষ ক্যোয়ারী প্রক্রিয়া বাস্তবায়নের জন্য, পোস্টগ্রেএসকিউএল এছাড়াও বিভাগ 8.14.6 তে বর্ণিত জসনপথ ডেটা প্রকার সরবরাহ করে ।
json
এবং jsonb
ডেটা প্রকার ইনপুট হিসাবে মূল্যবোধের প্রায় অনুরূপ সেট গ্রহণ। প্রধান ব্যবহারিক পার্থক্য দক্ষতা এক।
json
ডাটা টাইপ দোকানে পাঠ্য ইনপুট, যা প্রক্রিয়াকরণের ফাংশন প্রতিটি ফাঁসি উপর reparse আবশ্যক একটি সঠিক অনুলিপি; যখন jsonb
তথ্য একটি মধ্যে সংরক্ষিত হয়, বাইনারি ফর্ম্যাটে এটা সামান্য ইনপুট ধীর করে তোলে যোগ রূপান্তর ওভারহেড কারণে, কিন্তু উল্লেখযোগ্যভাবে প্রক্রিয়া দ্রুত পচে কারণ কোনো reparsing প্রয়োজন হয়।jsonb
এছাড়াও সূচক সমর্থন করে, যা একটি উল্লেখযোগ্য সুবিধা হতে পারে।
যেহেতু json
প্রকারটি ইনপুট পাঠ্যের একটি সঠিক অনুলিপি সঞ্চয় করে, এটি টোকেনগুলির মধ্যে শব্দার্থ-তুচ্ছ সাদা স্থান সংরক্ষণ করবে, পাশাপাশি জেএসওএন অবজেক্টের মধ্যে কীগুলির ক্রমও সংরক্ষণ করবে। এছাড়াও, যদি মানটির মধ্যে কোনও JSON অবজেক্টে একই কীটি একাধিকবার থাকে তবে সমস্ত কী / মান জোড়া রাখা হয়। (প্রসেসিং ফাংশনগুলি অপারেটিভ হিসাবে সর্বশেষ মানটিকে বিবেচনা করে)) বিপরীতভাবে, jsonb
সাদা স্থান সংরক্ষণ করে না, অবজেক্ট কীগুলির ক্রম সংরক্ষণ করে না এবং নকল বস্তু কীগুলি রাখে না। যদি ডুপ্লিকেট কীগুলি ইনপুটটিতে নির্দিষ্ট করা থাকে তবে কেবল শেষ মানটি রাখা হয়।
সাধারণভাবে, বেশিরভাগ অ্যাপ্লিকেশনগুলিকে জেএসএন ডেটা সংরক্ষণ করতে পছন্দ করা উচিত
jsonb
, যদি না বেশ কয়েকটি বিশেষ চাহিদা থাকে যেমন অবজেক্ট কীগুলি অর্ডার করার বিষয়ে উত্তরাধিকার অনুমান।
পোস্টগ্রিএসকিউএল প্রতি ডাটাবেসটিতে কেবল একটি অক্ষর সেট এনকোডিংয়ের অনুমতি দেয়। সুতরাং ডাটাবেস এনকোডিংটি ইউটিএফ 8 না হওয়া পর্যন্ত জেএসএন প্রকারের পক্ষে জেএসওএন নির্দিষ্টকরণের সাথে কঠোরভাবে মানা সম্ভব নয়। ডাটাবেস এনকোডিংয়ে প্রতিনিধিত্ব করা যায় না এমন অক্ষরগুলিকে সরাসরি অন্তর্ভুক্ত করার চেষ্টা ব্যর্থ হবে; বিপরীতে, যে অক্ষরগুলি ডেটাবেস এনকোডিংগুলিতে প্রতিনিধিত্ব করা যায় তবে ইউটিএফ 8 তে তা অনুমোদিত নয়।