PostgreSQL 11: Postgres 9.6 dan Postgres 11 ga bo'linishning evolyutsiyasi

Hammaga Juma ayyomi muborak bo'lsin! Kurs boshlanishiga kamroq va kamroq vaqt qoladi "Relational DBMS", shuning uchun bugun biz mavzu bo'yicha yana bir foydali materialning tarjimasini baham ko'ramiz.

Rivojlanish bosqichida PostgreSQL 11 Jadvalni qismlarga ajratishni yaxshilash bo'yicha bir qancha ta'sirchan ishlar amalga oshirildi. Bo'lim jadvallari - bu PostgreSQL-da ancha vaqtdan beri mavjud bo'lgan funksiya, ammo u, ta'bir joiz bo'lsa, 10-versiyaga qadar mavjud emas edi, bunda u juda foydali funksiyaga aylandi. Biz avvalroq aytib o'tgan edikki, jadvalni meros qilib olish bizning qismlarga ajratishni amalga oshirishimizdir va bu to'g'ri. Faqatgina ushbu usul sizni ishning ko'p qismini qo'lda bajarishga majbur qildi. Misol uchun, agar siz INSERT paytida bo'limlarga kortejlar kiritilishini istasangiz, buni siz uchun qilish uchun triggerlarni sozlashingiz kerak bo'ladi. Meros orqali bo'lish juda sekin va qo'shimcha funktsiyalarni ishlab chiqish qiyin edi.

PostgreSQL 10-da biz eski meros usuli yordamida hal qilib bo'lmaydigan ko'plab muammolarni hal qilish uchun mo'ljallangan "deklarativ qismlarga ajratish" ning tug'ilishini ko'rdik. Bu bizga ma'lumotlarni gorizontal ravishda ajratish imkonini beruvchi ancha kuchli vositaga olib keldi!

Xususiyatlarni taqqoslash

PostgreSQL 11 ta'sirchan yangi xususiyatlar to'plamini taqdim etadi, ular ishlashni yaxshilashga yordam beradi va bo'lingan jadvallarni ilovalar uchun shaffofroq qiladi.

PostgreSQL 11: Postgres 9.6 dan Postgres 11 ga bo'linishning evolyutsiyasi
PostgreSQL 11: Postgres 9.6 dan Postgres 11 ga bo'linishning evolyutsiyasi
PostgreSQL 11: Postgres 9.6 dan Postgres 11 ga bo'linishning evolyutsiyasi
1. Cheklovchi istisnolardan foydalanish
2. Faqat tugunlarni qo'shadi
3. Faqat bo'linmagan jadvalga havola qiluvchi bo'lingan jadval uchun
4. Indekslar bo'limning barcha asosiy ustunlarini o'z ichiga olishi kerak
5. Ikkala tomondagi bo'lim cheklovlari mos kelishi kerak

unumdorlik

Bizda ham yaxshi yangilik bor! Yangi usul qo'shildi bo'limlarni o'chirish. Ushbu yangi algoritm so'rov shartiga qarab mos bo'limlarni aniqlashi mumkin WHERE. Oldingi algoritm, o'z navbatida, shartga javob bera olishini aniqlash uchun har bir bo'limni tekshirdi WHERE. Bu bo'limlar sonining ko'payishi bilan rejalashtirish vaqtini qo'shimcha oshirishga olib keldi.

9.6-da, meros orqali bo'linish bilan, kortejlarni bo'limlarga yo'naltirish odatda kortejni to'g'ri bo'limga kiritish uchun bir qator IF bayonotlarini o'z ichiga olgan trigger funktsiyasini yozish orqali amalga oshirildi. Bu funktsiyalarni bajarish juda sekin bo'lishi mumkin. 10-versiyada deklarativ bo'linish qo'shilgan bo'lsa, bu juda tez ishlaydi.

100 ta bo'limga ega bo'lingan jadvaldan foydalanib, biz 10 BIGINT ustuni va 1 INT ustunli jadvalga 5 million qatorni yuklash samaradorligini baholashimiz mumkin.

PostgreSQL 11: Postgres 9.6 dan Postgres 11 ga bo'linishning evolyutsiyasi

Bitta indekslangan yozuvni topish va bitta yozuvni boshqarish uchun DML-ni bajarish uchun ushbu jadvalni so'rashning bajarilishi (faqat 1 protsessor yordamida):

PostgreSQL 11: Postgres 9.6 dan Postgres 11 ga bo'linishning evolyutsiyasi

Bu erda biz har bir operatsiyaning ishlashi PG 9.6 dan keyin sezilarli darajada oshganini ko'rishimiz mumkin. So'rovlar SELECT ancha yaxshi ko'rinadi, ayniqsa so'rovlarni rejalashtirish paytida bir nechta bo'limlarni istisno qilishga qodir bo'lganlar. Bu shuni anglatadiki, rejalashtiruvchi avval bajarishi kerak bo'lgan ko'p ishlarni o'tkazib yuborishi mumkin. Masalan, keraksiz bo'limlar uchun yo'llar endi qurilmaydi.

xulosa

Jadvalni qismlarga ajratish PostgreSQL-da juda kuchli xususiyatga aylana boshladi. Bu sizga sekin, massiv DML operatsiyalarining tugashini kutmasdan, ma'lumotlarni onlayn tarzda tezda ko'rsatish va uni oflayn rejimga o'tkazish imkonini beradi.. Bu shuningdek, tegishli ma'lumotlar birgalikda saqlanishi mumkinligini anglatadi, ya'ni sizga kerak bo'lgan ma'lumotlarga yanada samarali kirish mumkin. Ushbu versiyada amalga oshirilgan yaxshilanishlar ushbu xususiyatlarning barchasi ustida tinimsiz ishlagan ishlab chiquvchilar, sharhlovchilar va komitentlarsiz amalga oshirilmas edi.
Ularning barchasiga rahmat! PostgreSQL 11 ajoyib ko'rinadi!

Mana shunday qisqa, ammo juda qiziqarli maqola. Fikrlaringizni baham ko'ring va ro'yxatdan o'tishni unutmang ochiq kun, uning doirasida kurs dasturi batafsil bayon qilinadi.

Manba: www.habr.com

a Izoh qo'shish