PostgreSQL 14 DBMS ریلیز

ایک سال کی ترقی کے بعد، PostgreSQL 14 DBMS کی ایک نئی مستحکم برانچ شائع کی گئی ہے۔ نئی برانچ کے لیے اپ ڈیٹس نومبر 2026 تک پانچ سالوں میں جاری کیے جائیں گے۔

اہم اختراعات:

  • صف نما اظہارات کا استعمال کرتے ہوئے JSON ڈیٹا تک رسائی کے لیے تعاون شامل کیا گیا: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; منتخب کریں * ٹیسٹ سے جہاں تفصیلات['attributes']['size'] = '"میڈیم"'؛

    hstore قسم کی طرف سے فراہم کردہ کلیدی/ویلیو ڈیٹا کے لیے اسی طرح کا نحو نافذ کیا جاتا ہے۔ یہ نحو ابتدائی طور پر ایک عالمگیر فریم ورک کا استعمال کرتے ہوئے لاگو کیا گیا تھا، جسے مستقبل میں دوسری اقسام کے لیے استعمال کیا جا سکتا ہے۔ hstore کی قسم کی مثال: INSERT INTO mytable VALUES ('a=>b, c=>d')؛ مائی ٹیبل سے h['a'] کو منتخب کریں۔ اپ ڈیٹ mytable SET h['c'] = 'نیا'؛

  • رینجز کو متعین کرنے کے لیے اقسام کے خاندان کو نئی "ملٹی رینج" اقسام کے ساتھ بڑھا دیا گیا ہے، جو آپ کو اقدار کی غیر متجاوز رینجز کی ترتیب شدہ فہرستوں کی وضاحت کرنے کی اجازت دیتا ہے۔ ہر موجودہ رینج کی قسم کے علاوہ، اس کی اپنی ملٹی رینج قسم تجویز کی گئی ہے، مثال کے طور پر، قسم "int4range" "int4multirange" سے مساوی ہے، اور "daterange" کی قسم "datemultirange" سے مماثل ہے۔ نئی اقسام کا استعمال سوالات کے ڈیزائن کو آسان بناتا ہے جو حدود کی پیچیدہ ترتیبوں کو جوڑتا ہے۔ منتخب کریں '{[3,7), [8,9)}'::int4multirange; nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0)) کو منتخب کریں؛
  • بڑی تعداد میں رابطوں پر کارروائی کرنے والے ہائی لوڈ سسٹمز کی کارکردگی کو بہتر بنانے کے لیے اصلاح کی گئی ہے۔ کچھ ٹیسٹوں میں، کارکردگی میں دو گنا اضافہ دیکھا جاتا ہے۔
  • بی ٹری اشاریہ جات کی کارکردگی کو بہتر بنایا گیا ہے اور جدولوں کو کثرت سے اپ ڈیٹ کرنے پر انڈیکس کی نمو کا مسئلہ حل ہو گیا ہے۔
  • درخواستوں کی پائپ لائن ٹرانسمیشن کے کلائنٹ سائیڈ (libpq سطح پر لاگو) کے لیے معاونت شامل کی گئی ہے، جو آپ کو بھیج کر بڑی تعداد میں لکھنے کے چھوٹے آپریشنز (INSERT/UPDATE/DELETE) انجام دینے سے وابستہ ڈیٹا بیس کے منظرناموں کو نمایاں طور پر تیز کرنے کی اجازت دیتا ہے۔ پچھلے ایک کے نتیجے کا انتظار کیے بغیر اگلی درخواست۔ موڈ طویل پیکٹ کی ترسیل میں تاخیر کے ساتھ کنکشن پر کام کو تیز کرنے میں بھی مدد کرتا ہے۔
  • متعدد PostgreSQL سرورز پر مشتمل تقسیم شدہ کنفیگریشنز کے لیے بہتر صلاحیتیں۔ منطقی نقل کے نفاذ میں، اب اسٹریمنگ موڈ میں ان ٹرانزیکشنز کو بھیجنا ممکن ہو گیا ہے جو عمل میں آ رہے ہیں، جو بڑے ٹرانزیکشنز کی نقل کی کارکردگی کو نمایاں طور پر بہتر بنا سکتے ہیں۔ اس کے علاوہ، منطقی نقل کے دوران موصول ہونے والے ڈیٹا کی منطقی ضابطہ کشائی کو بہتر بنایا گیا ہے۔
  • بیرونی جدولوں کو جوڑنے کے طریقہ کار میں فارن ڈیٹا ریپر (postgres_fdw) نے متوازی استفسار پراسیسنگ کے لیے تعاون شامل کیا ہے، جو فی الحال صرف دوسرے PostgreSQL سرورز سے منسلک ہونے پر لاگو ہوتا ہے۔ postgres_fdw بیچ موڈ میں بیرونی جدولوں میں ڈیٹا شامل کرنے اور تقسیم شدہ میزیں درآمد کرنے کی اہلیت کے لیے معاونت بھی شامل کرتا ہے "غیر ملکی اسکیما درآمد کریں" کی ہدایت کی وضاحت کر کے۔
  • VACUUM آپریشن (کوڑا اٹھانا اور ڈسک اسٹوریج کی پیکیجنگ) کے نفاذ کے لیے اصلاح کی گئی ہے۔ ایک ہنگامی کلین اپ موڈ شامل کیا گیا ہے جو غیر ضروری صفائی کے کاموں کو چھوڑ دیتا ہے اگر ٹرانزیکشن ID کی لپیٹ کے حالات پیدا ہوتے ہیں۔ B-Tree فارمیٹ میں اشاریہ جات پر کارروائی کرتے وقت اوور ہیڈ کو کم کیا گیا۔ ڈیٹا بیس کے آپریشن کے بارے میں اعداد و شمار جمع کرنے والے "ANALYZE" آپریشن کے عمل میں نمایاں طور پر تیزی لائی گئی ہے۔
  • TOAST سسٹم میں استعمال ہونے والے کمپریشن کے طریقہ کار کو ترتیب دینے کی صلاحیت شامل کی گئی ہے، جو کہ بڑے ڈیٹا کو ذخیرہ کرنے کے لیے ذمہ دار ہے، جیسے کہ متن کے بلاکس یا ہندسی معلومات۔ pglz کمپریشن طریقہ کے علاوہ، TOAST اب LZ4 الگورتھم استعمال کر سکتا ہے۔
  • ڈی بی ایم ایس کے آپریشن کی نگرانی کے آلات کو بڑھا دیا گیا ہے۔ COPY کمانڈز (pg_stat_progress_copy) کی پیشرفت کو ٹریک کرنے کے لیے ملاحظات شامل کیے گئے، نقل کی سلاٹس (pg_stat_replication_slots) اور WAL ٹرانزیکشن لاگ (pg_stat_wal) سے متعلق سرگرمی کے بارے میں اعدادوشمار۔ compute_query_id فنکشن شامل کیا گیا ہے، جو مختلف سب سسٹمز، جیسے pg_stat_activity اور EXPLAIN VERBOSE، کو ہر درخواست کے لیے ایک منفرد شناخت کنندہ تفویض کرکے درخواستوں کو ٹریک کرنے کے قابل بناتا ہے۔
  • استفسارات کی متوازی پروسیسنگ کو بہتر بنانے اور ترتیب وار ریکارڈ اسکین آپریشنز کے بیک وقت عمل درآمد کی کارکردگی کو بہتر بنانے، PL/pgSQL میں "RETURN QUERY" کمانڈ کا استعمال کرتے ہوئے استفسارات کی متوازی عمل درآمد، اور "میں استفسارات کے متوازی عمل درآمد کو بہتر بنانے کے لیے استفسار کے منصوبہ ساز میں اصلاح کو شامل کیا گیا ہے۔ مٹیریلائزڈ ویو کو ریفریش کریں۔ سائکلک نیسٹڈ مرجز (جوائن) کی کارکردگی کو بہتر بنانے کے لیے، اضافی کیشنگ کے لیے سپورٹ کو لاگو کیا گیا ہے۔
  • اعلی درجے کے اعدادوشمار کو اب اظہار کو بہتر بنانے کے لیے استعمال کیا جا سکتا ہے، اور اب ونڈو کے افعال کو بہتر بنانے کے لیے اضافی چھانٹی کا استعمال کیا جا سکتا ہے۔
  • ذخیرہ شدہ طریقہ کار جو آپ کو کوڈ کے بلاکس میں لین دین کا انتظام کرنے کی اجازت دیتے ہیں اب "OUT" پیرامیٹرز کا استعمال کرتے ہوئے واپسی کے ڈیٹا کی وضاحت کی حمایت کرتے ہیں۔
  • ڈیٹ_بن فنکشن کو ایک مخصوص وقفہ کے مطابق راؤنڈ ٹائم اسٹیمپ ویلیوز میں شامل کیا گیا۔ تاریخ_بن کو منتخب کریں('15 منٹ'، TIMESTAMP '2020-02-11 15:44:17'، TIMESTAMP '2001-01-01')؛ 2020-02-11 15:30:00
  • بار بار چلنے والے کامن ٹیبل ایکسپریشنز (CTE) میں سائیکلوں کو ترتیب دینے اور ان کی شناخت کرنا آسان بنانے کے لیے SQL معیار میں بیان کردہ SEARCH اور CYCLE اظہارات شامل کیے گئے۔ RECURSIVE search_tree (id, link, data) AS ( SELECT t.id, t.link, t.data FROM ट्री t UNION All SELECT t.id, t.link, t.data FROM tree t, search_tree st WHERE t. id = st.link ) id SET آرڈرکول کے ذریعے پہلے گہرائی میں تلاش کریں منتخب کریں * search_tree سے ORDER BY ordercol؛
  • psql یوٹیلیٹی میں، ٹیبز کے ساتھ کمانڈز کی خودکار تکمیل کو بہتر بنایا گیا ہے، فنکشن آرگیومینٹس کو ظاہر کرنے کی صلاحیت کو "\df" کمانڈ میں شامل کیا گیا ہے، اور دکھائے گئے اعدادوشمار کو "\dX" کمانڈ تک بڑھا دیا گیا ہے۔
  • صارفین کو صرف پڑھنے یا صرف لکھنے کے لیے مراعات تفویض کرنا ممکن ہے۔ pg_read_all_data اور pg_write_all_data پہلے سے طے شدہ کرداروں کا استعمال کرتے ہوئے انفرادی جدولوں، ملاحظات اور اسکیموں پر مراعات مرتب کی جا سکتی ہیں۔ گرانٹ pg_read_all_data to user1;
  • نئی تنصیبات md256 کے بجائے SCRAM-SHA-5 کا استعمال کرتے ہوئے پاس ورڈ کی توثیق کرنے کے لیے ڈیفالٹ ہوتی ہیں (postgresql.conf تیار کرتے وقت "password_encryption" پیرامیٹر اب 'scram-sha-256' پر سیٹ ہے)۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں