PostgreSQL 11: Postgres 9.6-аас Postgres 11 хүртэлх хуваалтын хувьсал

Бүгдэд нь Баасан гарагийг сайхан өнгөрүүлээрэй! Хичээл эхлэхэд бага, бага хугацаа үлдлээ "Харилцааны DBMS", тиймээс өнөөдөр бид энэ сэдвээр өөр нэг хэрэгтэй материалын орчуулгыг хуваалцаж байна.

Хөгжлийн үе шатанд PostgreSQL 11 Хүснэгтийн хуваалтыг сайжруулахын тулд зарим гайхалтай ажил хийгдсэн. Хуваах хүснэгтүүд - энэ бол PostgreSQL-д нэлээд удаан хугацаанд байсан функц боловч 10-р хувилбар хүртэл үндсэндээ байхгүй байсан бөгөөд энэ нь маш хэрэгтэй функц болсон. Хүснэгтийн өв залгамжлал нь бидний хуваалтын хэрэгжилт гэж бид өмнө нь хэлсэн бөгөөд энэ нь үнэн юм. Зөвхөн энэ арга нь ихэнх ажлыг гараар хийхээс өөр аргагүй болсон. Жишээлбэл, хэрэв та INSERT хийх үед хэсэг хэсгүүдэд залгуур оруулахыг хүсвэл үүнийг хийх триггерүүдийг тохируулах хэрэгтэй болно. Өв залгамжлалаар хуваах нь маш удаан бөгөөд нэмэлт функцийг хөгжүүлэхэд хэцүү байсан.

PostgreSQL 10 дээр бид хуучин өв залгамжлалын аргыг ашиглан шийдвэрлэх боломжгүй байсан олон асуудлыг шийдвэрлэхэд зориулагдсан "мэдээлийн хуваалт" үүссэнийг харсан. Энэ нь өгөгдлийг хэвтээ байдлаар хуваах боломжийг бидэнд олгосон илүү хүчирхэг хэрэгсэлд хүргэсэн!

Онцлогын харьцуулалт

PostgreSQL 11 нь гүйцэтгэлийг сайжруулж, хуваах хүснэгтүүдийг програмуудад илүү ил тод болгоход туслах гайхалтай шинэ функцуудыг танилцуулж байна.

PostgreSQL 11: Postgres 9.6-аас Postgres 11 хүртэлх хуваалтын хувьсал
PostgreSQL 11: Postgres 9.6-аас Postgres 11 хүртэлх хуваалтын хувьсал
PostgreSQL 11: Postgres 9.6-аас Postgres 11 хүртэлх хуваалтын хувьсал
1. Хязгаарлалтын онцгой тохиолдлуудыг ашиглах
2. Зөвхөн зангилаа нэмнэ
3. Зөвхөн хуваалтгүй хүснэгтэд хамаарах хуваалттай хүснэгтэд зориулагдсан
4. Индексүүд нь хуваалтын бүх гол баганыг агуулсан байх ёстой
5. Хоёр талын хэсгийн хязгаарлалт нь таарч байх ёстой

Бүтээмж

Бидэнд бас сайхан мэдээ байна! Шинэ арга нэмэгдсэн хэсгүүдийг устгах. Энэхүү шинэ алгоритм нь асуулгын нөхцөлийг хараад тохирох хэсгүүдийг тодорхойлж чадна WHERE. Өмнөх алгоритм нь эргээд тухайн нөхцөлийг хангаж чадах эсэхийг тодорхойлохын тулд хэсэг бүрийг шалгасан WHERE. Энэ нь хэсгүүдийн тоо нэмэгдэхийн хэрээр төлөвлөлтийн хугацааг нэмэгдүүлсэн.

9.6-д өв залгамжлалаар хуваах үед залгууруудыг хуваалтууд руу чиглүүлэх нь ихэвчлэн зөв хуваалт руу залгуур оруулахын тулд хэд хэдэн IF мэдэгдлүүдийг агуулсан триггер функцийг бичих замаар хийгддэг. Эдгээр функцийг гүйцэтгэхэд маш удаан байж болно. 10-р хувилбарт тунхаглалын хуваалт нэмэгдсэнээр энэ нь илүү хурдан ажилладаг.

100 хуваалт бүхий хуваалттай хүснэгтийг ашиглан бид 10 BIGINT багана, 1 INT багана бүхий хүснэгтэд 5 сая мөр ачаалах гүйцэтгэлийг үнэлэх боломжтой.

PostgreSQL 11: Postgres 9.6-аас Postgres 11 хүртэлх хуваалтын хувьсал

Нэг индексжүүлсэн бичлэгийг олохын тулд энэ хүснэгтээс асуулга хийх, нэг бичлэгийг удирдахын тулд DML-г ажиллуулах гүйцэтгэл (зөвхөн 1 процессор ашиглан):

PostgreSQL 11: Postgres 9.6-аас Postgres 11 хүртэлх хуваалтын хувьсал

Эндээс бид PG 9.6-аас хойш үйл ажиллагаа бүрийн гүйцэтгэл мэдэгдэхүйц нэмэгдсэнийг харж болно. Хүсэлтүүд SELECT Ялангуяа асуулга төлөвлөх явцад олон хуваалтыг оруулахгүй байх чадвартай хуваалтууд илүү сайн харагддаг. Энэ нь төлөвлөгч өмнө нь хийх ёстой байсан олон ажлыг алгасаж болно гэсэн үг юм. Жишээлбэл, шаардлагагүй хэсгүүдэд зориулсан замууд баригдахаа больсон.

дүгнэлт

Хүснэгтийг хуваах нь PostgreSQL-д маш хүчирхэг функц болж эхэлж байна. Энэ нь танд удаан, асар их DML үйлдлүүд дуусахыг хүлээхгүйгээр өгөгдлийг онлайнаар хурдан харуулах, офлайн болгох боломжийг олгоно.. Энэ нь холбогдох өгөгдлийг хамтад нь хадгалах боломжтой гэсэн үг бөгөөд энэ нь танд хэрэгтэй өгөгдөлд илүү үр дүнтэй хандах боломжтой гэсэн үг юм. Энэ хувилбарт хийсэн сайжруулалт нь эдгээр бүх боломжууд дээр уйгагүй ажилласан хөгжүүлэгчид, тоймчид болон комиссаруудгүйгээр боломжгүй байх байсан.
Тэдэнд бүгдэд нь баярлалаа! PostgreSQL 11 гайхалтай харагдаж байна!

Ийм богино боловч нэлээд сонирхолтой нийтлэл энд байна. Сэтгэгдлээ хуваалцаж, бүртгүүлэхээ бүү мартаарай Нээлттэй өдөр, үүнд курсын хөтөлбөрийг дэлгэрэнгүй тайлбарлах болно.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх