PostgreSQL 11. բաժանման էվոլյուցիան Postgres 9.6-ից Postgres 11-ին

Ունեցեք հիանալի ուրբաթ բոլորին: Դասընթացի մեկնարկին գնալով ավելի քիչ ժամանակ է մնում «Հարաբերական DBMS», ուստի այսօր կիսվում ենք թեմայի վերաբերյալ մեկ այլ օգտակար նյութի թարգմանությամբ։

Զարգացման փուլում PostgreSQL 11- ը Որոշ տպավորիչ աշխատանք է կատարվել աղյուսակների բաժանման բարելավման ուղղությամբ: Բաժանման սեղաններ - սա մի ֆունկցիա է, որը գոյություն ուներ PostgreSQL-ում բավականին երկար ժամանակ, բայց այն, այսպես ասած, ըստ էության գոյություն չուներ մինչև 10-րդ տարբերակը, որում այն ​​դարձավ շատ օգտակար գործառույթ: Մենք նախկինում նշել ենք, որ աղյուսակի ժառանգությունը բաժանման մեր իրականացումն է, և դա ճիշտ է: Միայն այս մեթոդը ստիպեց ձեզ աշխատանքի մեծ մասը կատարել ձեռքով: Օրինակ, եթե ցանկանում էիք, որ INSERT-ների ընթացքում tuples-ները տեղադրվեին բաժինների մեջ, դուք պետք է կարգավորեք գործարկիչները, որպեսզի դա անեն ձեզ համար: Ժառանգության միջոցով բաժանումը շատ դանդաղ էր և դժվար էր զարգացնել լրացուցիչ ֆունկցիոնալությունը:

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 միլիոն տողերի բեռնման արդյունավետությունը 1 BIGINT սյունակով և 5 INT սյունակներով աղյուսակում:

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

Добавить комментарий