إتقان نوع JSONB في PostgreSQL في مقال واحد
تعلم كيفية استخدام نوع JSONB في PostgreSQL لتخزين واستعلام ومعالجة بيانات JSON بكفاءة.
تعلم كيفية استخدام نوع JSONB في PostgreSQL لتخزين واستعلام ومعالجة بيانات JSON بكفاءة.
في تطوير التطبيقات الحديثة، أصبح التعامل مع البيانات غير المنظمة وتخزينها أمرًا شائعًا بشكل متزايد. يوفر نوع JSONB في PostgreSQL أداة قوية للمطورين لتخزين واستعلام بيانات JSON بكفاءة. في هذه المقالة، سوف نتعمق في مفهوم واستخدام نوع JSONB ونوضح ميزاته القوية من خلال أمثلة محددة على الكود.
JSONB هو نوع بيانات في PostgreSQL يخزن بيانات JSON بتنسيق ثنائي. على عكس النوع العادي JSON، يعتبر JSONB أكثر كفاءة في الاستعلام والتلاعب. يدعم مجموعة غنية من المشغلين والدوال التي تبسط التعامل مع بيانات JSON. بالإضافة إلى ذلك، يدعم JSONB أنواعًا متعددة من الفهارس، بما في ذلك فهارس B-tree وHash وGIN وGiST، مما يعزز أداء الاستعلام بشكل أكبر.
أولاً، دعونا ننشئ جدولًا يحتوي على عمود JSONB. لنفترض أن لدينا جدول products لتخزين معلومات المنتجات، مع تفاصيل المنتج المخزنة باستخدام نوع JSONB.
يمكننا إدخال بيانات JSON في حقل JSONB باستخدام جملة INSERT بسيطة.
يمكننا استخدام المشغل ->> لاستخراج قيم النصوص من حقل JSONB. يوضح المثال التالي كيفية استخراج معلومات العلامة التجارية لأحد المنتجات.
يمكننا استخدام مجموعة من المشغلين -> و->> لاستخراج القيم المتداخلة في بنية JSON. يوضح المثال التالي كيفية استخراج معلومات المعالج لأحد المنتجات.
باستخدام المشغل #>>، يمكننا استخراج القيم من مسارات محددة داخل بيانات JSON. يوضح المثال التالي كيفية استخراج معلومات التخزين.
@> للاستعلامات الاحتوائيةيحقق المشغل @> من ما إذا كان كائن JSONB يحتوي على كائن JSONB آخر. يوضح المثال التالي كيفية استعلام المنتجات لعلامة تجارية معينة.
يمكننا استخدام الدالة jsonb_set لتحديث بيانات JSONB. تقوم هذه الدالة بتحديث القيمة في المسار المحدد. يوضح المثال التالي كيفية تحديث معلومات التخزين لأحد المنتجات.
يمكننا استخدام المشغل - لإزالة الحقول العلوية من بيانات JSONB. يحذف هذا المشغل المفتاح المحدد من كائن JSONB. يوضح المثال التالي كيفية إزالة حقل علوي من تفاصيل المنتج.
يمكننا استخدام المشغل #- لإزالة عناصر مسار محددة من بيانات JSONB. يحذف هذا المشغل المفتاح في المسار المحدد. يوضح المثال التالي كيفية حذف معلومات المعالج من مواصفات المنتج.
يمكن أن تتضمن بيانات JSONB مصفوفات، ويمكننا استخدام المشغلين المتعلقين بالمصفوفات للتعامل مع هذه البيانات. يوضح المثال التالي كيفية تخزين واستعلام عن المنتجات بمؤشراتها المتعددة.
في المثال أعلاه، يمكنك أيضًا استخدام المشغل ? للتحقق مما إذا كانت مصفوفة JSONB تحتوي على عنصر معين:
يمكننا استخدام المشغل || لدمج كائنين من JSONB. يمزج هذا المشغل بين كائنين JSONB في واحد. يوضح المثال التالي كيفية دمج مواصفات جديدة في تفاصيل المنتج الحالية.
يمكننا استخدام دوال التجميع لمعالجة بيانات JSONB، مثل عد عدد المنتجات لكل علامة تجارية.
لتحسين أداء الاستعلام باستخدام بيانات JSONB، يمكننا إنشاء فهارس على مفاتيح محددة داخل حقل JSONB. يعد اختيار النوع المناسب من الفهارس أمرًا حاسمًا لاحتياجات الاستعلام المختلفة.
يمكن أن يعزز تحديد الفهارس وإنشاؤها بشكل صحيح بشكل كبير أداء استعلامات بيانات JSONB.
تعد الفهارس GIN مثالية لتسريع الاستعلامات التي تشمل البيانات متعددة القيم والمصفوفات. على سبيل المثال، يمكننا إنشاء فهرس GIN لمصفوفة tags المذكورة سابقًا لتسريع الاستعلامات على عناصر المصفوفة.
للاستعلامات البسيطة لمفتاح-قيمة، يمكن أن يحسن فهرس B-tree الأداء بشكل كبير. تعتبر فهارس B-tree مناسبة لاستعلامات النطاق وعمليات الترتيب. يوضح المثال التالي كيفية إنشاء فهرس B-tree للمفتاح model في الحقل details
يوفر نوع JSONB في PostgreSQL حلاً قويًا ومرنًا للتعامل مع بيانات JSON. مع المقدمة والأمثلة في هذه المقالة، يجب أن يكون لديك الآن فهم شامل لكيفية استخدام نوع JSONB. من خلال إتقان هذه التقنيات، يمكنك التعامل مع البيانات غير المنظمة واستعلامها بكفاءة، مما يعزز أداء ومرونة تطبيقاتك.