ПостгреСКЛ 11: Еволуција партиционисања са Постгрес 9.6 на Постгрес 11

Угодан петак свима! Све мање времена остаје до почетка курса "Релациони ДБМС", па данас делимо превод још једног корисног материјала на ту тему.

У фази развоја ПостгреСКЛ 11 Обављен је импресиван рад на побољшању партиционисања табеле. Партициони столови - ово је функција која је постојала у ПостгреСКЛ-у доста дуго, али је, да тако кажем, суштински није постојала до верзије 10, у којој је постала веома корисна функција. Раније смо рекли да је наслеђивање табеле наша имплементација партиционисања, и то је тачно. Само овај метод вас је приморао да већину посла обавите ручно. На пример, ако желите да се торке уметну у секције током ИНСЕРТ-а, морали бисте да конфигуришете окидаче да то ураде уместо вас. Партиционисање путем наслеђивања је било веома споро и тешко је развијати додатне функционалности.

У ПостгреСКЛ 10, видели смо рођење „декларативног партиционисања“, функције дизајниране да реши многе проблеме који су били нерешиви коришћењем старог метода наслеђивања. Ово је довело до много моћнијег алата који нам је омогућио да хоризонтално поделимо податке!

Поређење карактеристика

ПостгреСКЛ 11 уводи импресиван скуп нових функција које помажу у побољшању перформанси и чине партициониране табеле транспарентнијим за апликације.

ПостгреСКЛ 11: Еволуција партиционисања са Постгрес 9.6 на Постгрес 11
ПостгреСКЛ 11: Еволуција партиционисања са Постгрес 9.6 на Постгрес 11
ПостгреСКЛ 11: Еволуција партиционисања са Постгрес 9.6 на Постгрес 11
1. Коришћење ограничавајућих изузетака
2. Додаје само чворове
3. Само за партиционисану табелу која упућује на непартиционисану
4. Индекси морају садржати све кључне колоне партиције
5. Ограничења секција на обе стране морају да се подударају

Перформансе

И овде имамо добре вести! Додата је нова метода брисање секција. Овај нови алгоритам може одредити одговарајуће одељке гледањем услова упита WHERE. Претходни алгоритам је заузврат проверавао сваки одељак да би утврдио да ли може да испуни услов WHERE. Ово је резултирало додатним повећањем времена планирања како се број секција повећавао.

У 9.6, са партиционисањем путем наслеђа, усмеравање торки у партиције се обично обављало писањем функције окидача која је садржала низ ИФ наредби за уметање тупле у исправну партицију. Ове функције могу бити веома споре за извршавање. Са декларативним партиционисањем додатим у верзији 10, ово функционише много брже.

Користећи партиционисану табелу са 100 партиција, можемо проценити перформансе учитавања 10 милиона редова у табелу са 1 БИГИНТ колоном и 5 ИНТ колона.

ПостгреСКЛ 11: Еволуција партиционисања са Постгрес 9.6 на Постгрес 11

Учинак упита ове табеле да се пронађе један индексирани запис и изврши ДМЛ за манипулацију једним записом (користећи само 1 процесор):

ПостгреСКЛ 11: Еволуција партиционисања са Постгрес 9.6 на Постгрес 11

Овде можемо видети да су перформансе сваке операције значајно порасле од ПГ 9.6. Захтеви SELECT изгледају много боље, посебно оне које су у стању да искључе више партиција током планирања упита. То значи да планер може прескочити много посла које је раније требало да уради. На пример, путање се више не прави за непотребне делове.

Закључак

Партиционисање табеле почиње да постаје веома моћна карактеристика у ПостгреСКЛ-у. Омогућава вам да брзо прикажете податке на мрежи и пребаците их ван мреже без чекања да се заврше споре, масивне ДМЛ операције.. Ово такође значи да се повезани подаци могу складиштити заједно, што значи да се подацима који су вам потребни може приступити много ефикасније. Побољшања направљена у овој верзији не би била могућа без програмера, рецензената и наручилаца који су неуморно радили на свим овим функцијама.
Хвала им свима! ПостгреСКЛ 11 изгледа фантастично!

Ево тако кратког, али прилично занимљивог чланка. Поделите своје коментаре и не заборавите да се пријавите Отворен дан, у оквиру које ће програм курса бити детаљно приказан.

Извор: ввв.хабр.цом

Додај коментар