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 фантастикалык көрүнөт!

Мына ушундай кыска, бирок абдан кызыктуу макала. Пикириңиз менен бөлүшүңүз жана катталууну унутпаңыз Ачык эшиктер күнү, анын ичинде курстун программасы майда-чүйдөсүнө чейин баяндалат.

Source: www.habr.com

Комментарий кошуу