منهنجي خيال ۾، پوئين رليز جي برعڪس، PostgreSQL 12 ۾ هڪ يا ٻه انقلابي خاصيتون شامل نه آهن (جهڙوڪ ورهاڱي يا سوال متوازي). مون هڪ دفعو مذاق ڪيو ته PostgreSQL 12 جي بنيادي خصوصيت وڌيڪ استحڪام آهي. ڇا اهو نه آهي ته توهان کي ضرورت آهي جڏهن توهان پنهنجي ڪاروبار جي نازڪ ڊيٽا کي منظم ڪريو ٿا؟
پر PostgreSQL 12 اتي نه روڪيو: نئين خاصيتن ۽ سڌارن سان، ايپليڪيشنون بهتر ڪارڪردگي ڪنديون، ۽ توهان سڀني کي ڪرڻو آهي اپ گريڊ!
(خير، ٿي سگهي ٿو انڊيڪس کي ٻيهر ٺاهيو، پر هن رليز ۾ اهو ايترو خوفناڪ نه آهي جيترو اسان استعمال ڪندا آهيون.)
PostgreSQL کي اپڊيٽ ڪرڻ ۽ فوري طور تي غير ضروري ڀوڳ کان سواءِ اهم سڌارن مان لطف اندوز ٿيڻ تمام وڏو ٿيندو. ڪجھ سال اڳ، مون جائزو ورتو PostgreSQL 9.4 کان PostgreSQL 10 تائين اپ گريڊ ۽ ڏٺو ته ڪيئن اپليڪيشن تيز ٿي وئي آھي مھرباني ڪري پوسٽ گري ايس سي ايل 10 ۾ سوال جي برابري کي بهتر ڪرڻ جي ڪري. ۽، سڀ کان وڌيڪ، مون کان تقريبا ڪجھ به نه گھريو ويو (صرف ھڪڙي ترتيب جي ماپ مقرر ڪريو max_parallel_workers
).
اتفاق ڪريو، اهو آسان آهي جڏهن ايپليڪيشنون بهتر ڪم ڪن ٿيون فوري طور تي اپ گريڊ کان پوء. ۽ اسان صارفين کي خوش ڪرڻ جي تمام گهڻي ڪوشش ڪندا آهيون، ڇاڪاڻ ته PostgreSQL انهن مان تمام گهڻو آهي.
پوء ڪيئن ٿي سگهي ٿو هڪ سادي اپ گريڊ PostgreSQL 12 ڏانهن توهان کي خوش ڪري؟ مان توهان کي هاڻي ٻڌايان ٿو.
اهم انڊيڪسنگ بهتري
انڊيڪسنگ جي بغير، ڊيٽابيس پري نه ويندي. ٻيو ڪيئن توهان جلدي معلومات ڳولي سگهو ٿا؟ PostgreSQL جو بنيادي انڊيڪسنگ سسٽم سڏيو ويندو آهي
اسان صرف آپريٽر استعمال ڪندا آهيون CREATE INDEX ON some_table (some_column)
، ۽ PostgreSQL انڊيڪس کي تازه ترين رکڻ لاءِ تمام گھڻو ڪم ڪندو آھي جڏھن ته اسين مسلسل قدرن کي داخل ڪرڻ، تازه ڪاري ڪرڻ ۽ حذف ڪرڻ لاءِ. هر شي پنهنجو ڪم ڪري ٿي، ڄڻ ته جادوءَ سان.
پر PostgreSQL انڊيڪسس ۾ ھڪڙو مسئلو آھي - اھي
PostgreSQL 12 B-tree indexes جي ڪارڪردگي کي تمام گهڻو بهتر بڻائي ٿو، ۽ TPC-C وانگر معيارن سان تجربن مان معلوم ٿيو آهي ته سراسري طور تي 40٪ گهٽ جڳهه هاڻي استعمال ڪئي وئي آهي. ھاڻي اسان گھٽ وقت خرچ ڪندا آھيون نه رڳو B-tree انڊيڪسس کي برقرار رکڻ (يعني لکڻ جي عملن تي)، پر ڊيٽا حاصل ڪرڻ تي پڻ، ڇاڪاڻ ته انڊيڪس تمام ننڍا آھن.
ايپليڪيشنون جيڪي فعال طور تي پنھنجي جدولن کي اپڊيٽ ڪن ٿيون - عام طور تي OLTP ايپليڪيشنون (
ڪجھ اپ گريڊ حڪمت عمليون انھن فائدن مان فائدو وٺڻ لاءِ B-tree indexes کي ٻيهر تعمير ڪرڻ جي ضرورت آھي (مثال طور.
PostgreSQL 12 ۾ انڊيڪسنگ انفراسٽرڪچر ۾ ٻيا بھتر آھن. ٻي شيءِ جتي ڪو جادو هو.
PostgreSQL 12 WAL رڪارڊز جي اوور هيڊ کي گھٽائي ڇڏيو آھي جيڪي انڊيڪس جي تعمير دوران GiST، GIN، ۽ SP-GiST انڊيڪسز پاران ٺاھيا ويا آھن. هي ڪيترن ئي قابل فائدن مهيا ڪري ٿو: WAL رڪارڊ گهٽ ڊسڪ اسپيس وٺن ٿا، ۽ ڊيٽا کي تيزيء سان ٻيهر هلايو ويندو آهي، جهڙوڪ آفت جي بحالي يا پوائنٽ ۾ وقت جي بحالي دوران. جيڪڏھن توھان پنھنجي ايپليڪيشنن ۾ اھڙيون انڊيڪس استعمال ڪندا آھيو (مثال طور، PostGIS-based geospatial ائپليڪيشنون GiST index تمام گھڻو استعمال ڪن ٿيون)، ھي ھڪ ٻي خصوصيت آھي جيڪا توھان جي طرف کان بغير ڪنھن ڪوشش جي تجربي کي بھتر بڻائيندي.
ورهاڱي - وڏو، بهتر، تيز
PostgreSQL 10 متعارف ڪرايو
PostgreSQL 12 ۾، ورهاڱي واري نظام جي ڪارڪردگي خاص طور تي بهتر ٿي چڪي آهي، خاص طور تي جيڪڏهن ٽيبل ۾ هزارين پارٽيشنون آهن. مثال طور، جيڪڏهن هڪ سوال هڪ ٽيبل ۾ صرف چند ورهاڱي کي متاثر ڪري ٿو، انهن مان هزارين، اهو تمام تيزيء سان عمل ڪندو. ڪارڪردگي صرف انهن قسمن جي سوالن لاء بهتر ناهي. توهان اهو پڻ ڏسندا ته ڪيتري تيزيءَ سان INSERT آپريشن ڪيترن ئي ورهاڱن سان ٽيبل تي آهن.
رڪارڊنگ ڊيٽا استعمال ڪندي
انهن فائدن جي مهرباني، PostgreSQL توهان کي اجازت ڏئي ٿو ته اڃا به وڏا ڊيٽا سيٽ محفوظ ڪري ۽ انهن کي ٻيهر حاصل ڪرڻ آسان بڻائي. ۽ توهان جي حصي تي ڪا به ڪوشش ناهي. جيڪڏهن ايپليڪيشن ۾ ڪيترائي حصا آهن، جهڙوڪ رڪارڊنگ ٽائيم سيريز ڊيٽا، هڪ سادي اپ گريڊ ان جي ڪارڪردگي کي بهتر بڻائي سگهندي.
جڏهن ته هي بلڪل ”اپ گريڊ ۽ لطف اندوز“ بهتري ناهي، PostgreSQL 12 توهان کي غير ملڪي ڪيز ٺاهڻ جي اجازت ڏئي ٿي جيڪا ورهاڱي واري جدولن جو حوالو ڏئي ٿي، ورهاڱي کي ڪم ڪرڻ ۾ خوشي پيدا ڪري ٿي.
سوالن سان تمام گهڻو بهتر ٿيو
جڏهن
مون کي اڪثر اهو معلوم ٿئي ٿو ته SQL ڏانهن نوان نوان CTEs استعمال ڪرڻ پسند ڪن ٿا؛ جيڪڏهن توهان انهن کي هڪ خاص طريقي سان لکندا آهيو، اهو واقعي محسوس ٿيندو آهي ته توهان هڪ لازمي پروگرام لکي رهيا آهيو. ذاتي طور تي، مون کي انهن سوالن جي چوڌاري حاصل ڪرڻ لاء ٻيهر لکڻ پسند ڪيو بغير CTE ۽ پيداوار وڌائڻ. هاڻي هر شيء مختلف آهي.
PostgreSQL 12 توهان کي ڪنهن خاص قسم جي CTE ان لائن ڪرڻ جي اجازت ڏئي ٿو بغير ضمني اثرات (SELECT
)، جيڪو صرف هڪ ڀيرو استعمال ڪيو ويندو آهي درخواست جي آخر جي ويجهو. جيڪڏهن مون CTE سوالن جو ٽريڪ رکيو جيڪي مون ٻيهر لکيا، انهن مان گهڻا هن درجي ۾ اچي ويندا. هي ڊولپرز کي صاف ڪوڊ لکڻ ۾ مدد ڪري ٿو جيڪو هاڻي جلدي هلندو آهي.
ان کان علاوه، PostgreSQL 12 پاڻ کي SQL execution کي بهتر بڻائي ٿو، بغير توهان کي ڪجهه ڪرڻ جي. ۽ جيتوڻيڪ مون کي شايد هاڻي اهڙن سوالن کي بهتر ڪرڻ جي ضرورت نه پوندي، اهو تمام سٺو آهي ته PostgreSQL سوال جي اصلاح تي ڪم جاري رکي ٿو.
Just-in-Time (JIT) - ھاڻي ڊفالٽ
PostgreSQL 12 سسٽم تي سپورٽ سان
جيئن ته JIT ڊفالٽ طور تي PostgreSQL 12 ۾ فعال آهي، ڪارڪردگي پنهنجي طور تي بهتر ٿي ويندي، پر مان سفارش ڪريان ٿو ايپليڪيشن کي جانچڻ جي PostgreSQL 11 ۾، جنهن JIT متعارف ڪرايو، سوال جي ڪارڪردگي کي ماپڻ لاءِ ۽ ڏسو ته ڇا توهان کي ڪنهن به شيءِ کي ترتيب ڏيڻ جي ضرورت آهي.
PostgreSQL 12 ۾ باقي نون خصوصيتن بابت ڇا؟
PostgreSQL 12 ۾ ڪافي نيون خاصيتون آهن، معياري SQL/JSON روٽ ايڪسپريشنز استعمال ڪندي JSON ڊيٽا کي ڳولڻ جي صلاحيت کان وٺي ملٽي فيڪٽر جي تصديق تائين پيراميٽر سان clientcert=verify-full
، ڪالم ٺاهيا ۽ گهڻو ڪجهه. هڪ الڳ پوسٽ لاء ڪافي.
PostgreSQL 10 وانگر، PostgreSQL 12 اپ گريڊ ٿيڻ کان پوءِ فوري طور تي مجموعي ڪارڪردگي بهتر ڪندو. توهان، يقيناً، توهان جو پنهنجو طريقو اختيار ڪري سگهو ٿا - بهتر ڪرڻ کان اڳ پيداواري نظام تي ساڳين حالتن هيٺ ايپليڪيشن کي آزمايو، جيئن مون پوسٽ گري ايس ايس ايل 10 سان ڪيو هو. جيتوڻيڪ PostgreSQL 12 اڳ ۾ ئي منهنجي توقع کان وڌيڪ مستحڪم آهي، جاچ ۾ سست نه ٿيو. ايپليڪيشنن کي مڪمل طور تي، انهن کي پيداوار ۾ ڇڏڻ کان اڳ.
جو ذريعو: www.habr.com