پوسٹگری ایس کیو ایل 11: پوسٹگریس 9.6 سے پوسٹگریس 11 تک تقسیم کا ارتقاء

سب کا جمعہ اچھا گزرے! کورس شروع ہونے سے پہلے کم سے کم وقت باقی رہ جاتا ہے۔ "رشتہ دار DBMS"تو آج ہم اس موضوع پر ایک اور مفید مواد کا ترجمہ شیئر کر رہے ہیں۔

ترقی کے مرحلے پر پوسٹگر ایس ایس ایل 11 ٹیبل کی تقسیم کو بہتر بنانے کے لیے کچھ متاثر کن کام کیا گیا ہے۔ تقسیم کی میزیں - یہ ایک ایسا فنکشن ہے جو PostgreSQL میں کافی عرصے سے موجود تھا، لیکن یہ، تو بات کرنے کے لیے، بنیادی طور پر ورژن 10 تک موجود نہیں تھا، جس میں یہ ایک بہت مفید فنکشن بن گیا۔ ہم نے پہلے کہا تھا کہ جدول کی وراثت ہماری تقسیم کا نفاذ ہے، اور یہ سچ ہے۔ صرف اس طریقہ نے آپ کو زیادہ تر کام دستی طور پر کرنے پر مجبور کیا۔ مثال کے طور پر، اگر آپ INSERTs کے دوران ٹیپلز کو سیکشنز میں داخل کرنا چاہتے ہیں، تو آپ کو اپنے لیے ایسا کرنے کے لیے ٹرگرز کو کنفیگر کرنا ہوگا۔ وراثت کے ذریعے تقسیم کرنا بہت سست تھا اور اس کے اوپر اضافی فعالیت تیار کرنا مشکل تھا۔

PostgreSQL 10 میں، ہم نے "اعلاناتی تقسیم" کی پیدائش دیکھی، ایک ایسی خصوصیت جو بہت سے مسائل کو حل کرنے کے لیے ڈیزائن کی گئی تھی جو وراثت کے پرانے طریقہ کو استعمال کرتے ہوئے ناقابل حل تھے۔ اس سے ایک بہت زیادہ طاقتور ٹول ہوا جس نے ہمیں ڈیٹا کو افقی طور پر تقسیم کرنے کی اجازت دی!

خصوصیت کا موازنہ

PostgreSQL 11 نئی خصوصیات کا ایک متاثر کن سیٹ متعارف کراتا ہے جو کارکردگی کو بہتر بنانے اور تقسیم شدہ میزوں کو ایپلی کیشنز کے لیے زیادہ شفاف بنانے میں مدد کرتا ہے۔

پوسٹگری ایس کیو ایل 11: پوسٹگریس 9.6 سے پوسٹگریس 11 تک تقسیم کا ارتقاء
پوسٹگری ایس کیو ایل 11: پوسٹگریس 9.6 سے پوسٹگریس 11 تک تقسیم کا ارتقاء
پوسٹگری ایس کیو ایل 11: پوسٹگریس 9.6 سے پوسٹگریس 11 تک تقسیم کا ارتقاء
1. مستثنیات کو محدود کرنا
2. صرف نوڈس جوڑتا ہے۔
3. صرف تقسیم شدہ جدول کے لیے جو ایک غیر تقسیم شدہ کا حوالہ دیتا ہے۔
4. اشاریہ جات میں تقسیم کے تمام کلیدی کالم ہونے چاہئیں
5. دونوں طرف سے سیکشن پابندیاں مماثل ہونی چاہئیں

کارکردگی

ہمارے یہاں بھی اچھی خبر ہے! نیا طریقہ شامل کیا گیا۔ حصوں کو حذف کرنا. یہ نیا الگورتھم استفسار کی حالت کو دیکھ کر مناسب حصوں کا تعین کر سکتا ہے۔ WHERE. پچھلا الگورتھم، بدلے میں، ہر سیکشن کو چیک کرتا ہے کہ آیا یہ شرط کو پورا کر سکتا ہے۔ WHERE. اس کے نتیجے میں سیکشنز کی تعداد میں اضافے کے ساتھ منصوبہ بندی کے وقت میں اضافی اضافہ ہوا۔

9.6 میں، وراثت کے ذریعے تقسیم کے ساتھ، ٹوپل کو پارٹیشنز میں روٹ کرنا عام طور پر ایک ٹرگر فنکشن لکھ کر کیا جاتا تھا جس میں ٹیوپل کو صحیح پارٹیشن میں داخل کرنے کے لیے IF اسٹیٹمنٹس کی ایک سیریز ہوتی تھی۔ ان افعال کو انجام دینے میں بہت سست ہوسکتی ہے۔ ورژن 10 میں اعلانیہ تقسیم کے ساتھ، یہ بہت تیزی سے کام کرتا ہے۔

100 پارٹیشنز کے ساتھ تقسیم شدہ ٹیبل کا استعمال کرتے ہوئے، ہم 10 BIGINT کالم اور 1 INT کالموں والے ٹیبل میں 5 ملین قطاروں کو لوڈ کرنے کی کارکردگی کا اندازہ لگا سکتے ہیں۔

پوسٹگری ایس کیو ایل 11: پوسٹگریس 9.6 سے پوسٹگریس 11 تک تقسیم کا ارتقاء

ایک اشاریہ شدہ ریکارڈ تلاش کرنے کے لیے اس ٹیبل سے استفسار کرنے کی کارکردگی اور ایک ریکارڈ (صرف 1 پروسیسر کا استعمال کرتے ہوئے):

پوسٹگری ایس کیو ایل 11: پوسٹگریس 9.6 سے پوسٹگریس 11 تک تقسیم کا ارتقاء

یہاں ہم دیکھ سکتے ہیں کہ PG 9.6 کے بعد سے ہر آپریشن کی کارکردگی میں نمایاں اضافہ ہوا ہے۔ درخواستیں SELECT بہت بہتر نظر آتے ہیں، خاص طور پر وہ جو استفسار کی منصوبہ بندی کے دوران متعدد پارٹیشنز کو خارج کرنے کی صلاحیت رکھتے ہیں۔ اس کا مطلب یہ ہے کہ شیڈیولر بہت سارے کاموں کو چھوڑ سکتا ہے جو اسے پہلے کرنا چاہیے تھا۔ مثال کے طور پر، راستے اب غیر ضروری حصوں کے لیے نہیں بنائے جاتے۔

حاصل يہ ہوا

ٹیبل تقسیم کرنا PostgreSQL میں ایک بہت ہی طاقتور خصوصیت بننا شروع ہو رہا ہے۔ یہ آپ کو تیزی سے ڈیٹا آن لائن ڈسپلے کرنے اور اسے آف لائن لے جانے کی اجازت دیتا ہے بغیر سست، بڑے پیمانے پر DML آپریشنز مکمل ہونے کا انتظار کیے بغیر۔. اس کا مطلب یہ بھی ہے کہ متعلقہ ڈیٹا کو ایک ساتھ ذخیرہ کیا جا سکتا ہے، یعنی آپ کو مطلوبہ ڈیٹا تک زیادہ مؤثر طریقے سے رسائی حاصل کی جا سکتی ہے۔ اس ورژن میں کی گئی بہتری ڈیولپرز، جائزہ لینے والوں اور کمٹٹرز کے بغیر ممکن نہیں تھی جنہوں نے ان تمام خصوصیات پر انتھک محنت کی۔
ان سب کا شکریہ! PostgreSQL 11 لاجواب لگتا ہے!

یہاں ایک مختصر لیکن کافی دلچسپ مضمون ہے۔ اپنے تبصرے شیئر کریں اور سائن اپ کرنا نہ بھولیں۔ کھلے دن، جس کے اندر کورس کے پروگرام کا تفصیل سے خاکہ پیش کیا جائے گا۔

ماخذ: www.habr.com

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