PostgreSQL 14 DBMS թողարկում

Մեկ տարվա մշակումից հետո հրապարակվել է PostgreSQL 14 DBMS-ի նոր կայուն մասնաճյուղը: Նոր մասնաճյուղի թարմացումները կթողարկվեն հինգ տարվա ընթացքում՝ մինչև 2026 թվականի նոյեմբերը:

Հիմնական նորամուծությունները.

  • Ավելացվել է JSON տվյալների հասանելիության աջակցություն զանգվածանման արտահայտությունների միջոցով. SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE մանրամասները['attributes']['size'] = '"միջին"';

    Նմանատիպ շարահյուսություն իրականացվում է hstore տեսակի կողմից տրամադրված բանալի/արժեքի տվյալների համար: Այս շարահյուսությունն ի սկզբանե իրականացվել է ունիվերսալ շրջանակի միջոցով, որը հետագայում կարող է օգտագործվել այլ տեսակների համար։ Օրինակ hstore տեսակի համար. INSERT INTO mytable VALUES ('a=>b, c=>d'); SELECT h['a'] FROM mytable-ից; ԹԱՐՄԱՑՆԵԼ mytable SET-ը h['c'] = 'նոր';

  • Ընդլայնվել է տիրույթների սահմանման տեսակների ընտանիքը նոր «բազմաթիվ» տիպերով, որոնք թույլ են տալիս նշել արժեքների չհամընկնող միջակայքերի դասավորված ցուցակները: Ի լրումն առկա միջակայքի յուրաքանչյուր տիպի, առաջարկվում է իր սեփական բազմաշերտ տիպը, օրինակ՝ «int4range» տիպը համապատասխանում է «int4multirange»-ին, իսկ «daterange» տիպը՝ «datemmultirange»: Նոր տեսակների օգտագործումը պարզեցնում է հարցումների ձևավորումը, որոնք մանիպուլյացիա են անում միջակայքերի բարդ հաջորդականությամբ: SELECT '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • Կատարվել են օպտիմիզացումներ՝ մեծ թվով միացումներ մշակող բարձր բեռնվածության համակարգերի արդյունավետությունը բարելավելու համար: Որոշ թեստերում նկատվում է կատարողականի կրկնակի աճ:
  • Բարելավվել է B-tree ինդեքսների արդյունավետությունը և լուծվել է աղյուսակների հաճախակի թարմացման դեպքում ցուցանիշների աճի հետ կապված խնդիրը:
  • Ավելացված է աջակցություն հաճախորդի կողմից (իրականացվել է libpq մակարդակով) խողովակաշարով հարցումների փոխանցման ռեժիմին, որը թույլ է տալիս զգալիորեն արագացնել տվյալների բազայի սցենարները, որոնք կապված են մեծ թվով փոքր գրելու գործառնությունների կատարման հետ (INSERT/UPDATE/DELETE) ուղարկելով հաջորդ հարցումը՝ չսպասելով նախորդի արդյունքին։ Ռեժիմը նաև օգնում է արագացնել աշխատանքը փաթեթների առաքման երկար ուշացումներով կապերի վրա:
  • Ընդլայնված հնարավորություններ բաշխված կոնֆիգուրացիաների համար, որոնք ներառում են մի քանի PostgreSQL սերվերներ: Տրամաբանական կրկնօրինակման իրականացման ժամանակ այժմ հնարավոր է դառնում հոսքային ռեժիմով ուղարկել կատարման ընթացքի մեջ գտնվող գործարքներ, ինչը կարող է զգալիորեն բարելավել մեծ գործարքների կրկնօրինակման կատարումը: Բացի այդ, օպտիմիզացվել է տրամաբանական վերարտադրության ժամանակ ստացված տվյալների տրամաբանական վերծանումը:
  • Արտաքին աղյուսակների միացման մեխանիզմը Foreign Data Wrapper-ը (postgres_fdw) ավելացրել է հարցումների զուգահեռ մշակման աջակցություն, որը ներկայումս կիրառելի է միայն այլ PostgreSQL սերվերներին միանալու դեպքում: postgres_fdw-ն նաև ավելացնում է աջակցություն խմբաքանակի ռեժիմով արտաքին աղյուսակներին տվյալներ ավելացնելու համար և բաժանված աղյուսակներ ներմուծելու հնարավորություն՝ նշելով «ՆԵՐՄՈՒԾՄԱՆ ԱՐՏԱՔԻՆ ՍԽԵՄԱ» հրահանգը:
  • Օպտիմալացումներ են կատարվել VACUUM օպերացիայի իրականացման համար (աղբահանություն և սկավառակի պահեստավորման փաթեթավորում): Ավելացվել է շտապ մաքրման ռեժիմ, որը բաց է թողնում մաքրման ոչ էական գործողությունները, եթե ստեղծվեն գործարքի ID-ի փաթեթավորման պայմաններ: Նվազեցված ծախսերը B-Tree ձևաչափով ինդեքսների մշակման ժամանակ: Զգալիորեն արագացվել է «ANALYZE» օպերացիայի կատարումը, որը հավաքում է տվյալների բազայի գործունեության վերաբերյալ վիճակագրություն։
  • Ավելացվեց TOAST համակարգում օգտագործվող սեղմման մեթոդը կարգավորելու հնարավորությունը, որը պատասխանատու է մեծ տվյալների պահպանման համար, ինչպիսիք են տեքստի կամ երկրաչափական տեղեկատվության բլոկները: Բացի pglz սեղմման մեթոդից, TOAST-ն այժմ կարող է օգտագործել LZ4 ալգորիթմը:
  • Ընդլայնվել են DBMS-ի աշխատանքի մոնիտորինգի գործիքները: Ավելացվել են դիտումներ՝ հետևելու COPY հրամանների առաջընթացին (pg_stat_progress_copy), կրկնօրինակման անցքերի վիճակագրությանը (pg_stat_replication_slots) և WAL գործարքների մատյանին առնչվող գործունեությանը (pg_stat_wal): Ավելացվել է compute_query_id ֆունկցիան, որը հնարավորություն է տալիս տարբեր ենթահամակարգերի, ինչպիսիք են pg_stat_activity-ը և EXPLAIN VERBOSE-ը, հետևել հարցումներին՝ յուրաքանչյուր հարցման համար եզակի նույնացուցիչ հատկացնելով:
  • Հարցումների պլանավորողին ավելացվել են օպտիմալացումներ՝ բարելավելու հարցումների զուգահեռ մշակումը և բարելավելու հաջորդական գրառումների սկանավորման գործողությունների միաժամանակյա կատարումը, հարցումների զուգահեռ կատարումը PL/pgSQL-ում՝ օգտագործելով «RETURN QUERY» հրամանը և հարցումների զուգահեռ կատարումը «»-ում: ԹԱՐՄԱՑՆԵԼ ՆՅՈՒԹԱԿԱՆ ՏԵՍԱԿԸ»: Ցիկլային ներդիր միաձուլումների (միանալու) կատարումը բարելավելու համար իրականացվել է լրացուցիչ քեշավորման աջակցություն:
  • Ընդլայնված վիճակագրությունն այժմ կարող է օգտագործվել արտահայտությունների օպտիմալացման համար, իսկ աստիճանական տեսակավորումն այժմ կարող է օգտագործվել պատուհանների գործառույթների օպտիմալացման համար:
  • Պահված ընթացակարգերը, որոնք թույլ են տալիս կառավարել գործարքները կոդի բլոկներում, այժմ աջակցում են վերադարձի տվյալների սահմանմանը «OUT» պարամետրերի միջոցով:
  • Ավելացվել է date_bin ֆունկցիան կլորացված ժամանակացույցի արժեքներին՝ ըստ սահմանված ընդմիջման: SELECT date_bin('15 րոպե', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Ավելացվեցին SEARCH և CYCLE արտահայտություններ, որոնք սահմանված են SQL ստանդարտում, որպեսզի ավելի հեշտ դարձնի ցիկլերի պատվիրումը և նույնականացումը ռեկուրսիվ Ընդհանուր աղյուսակի արտահայտություններում (CTE): WITH RECURSIVE search_tree(id, link, data) AS ( SELECT t.id, t.link, t.data FROM tree t UNION ALL SELECT t.id, t.link, t.data FROM tree t, search_tree st WHERE t. id = st.link ) ՈՐՈՆՄԱՆ ԽՈՐՈՒԹՅՈՒՆԸ ԱՌԱՋԸ id SET ordercol SELECT * FROM search_tree ORDER BY ordercol;
  • psql կոմունալում կատարելագործվել է ներդիրներով հրամանների ավտոմատ լրացումը, «\df» հրամանին ավելացվել է ֆունկցիայի արգումենտներ ցուցադրելու հնարավորությունը, իսկ ցուցադրվող վիճակագրությունը ընդլայնվել է «\dX» հրամանի վրա։
  • Հնարավոր է օգտատերերին տրամադրել միայն կարդալու կամ միայն գրելու արտոնություններ: Արտոնությունները կարող են սահմանվել առանձին աղյուսակների, դիտումների և սխեմաների վրա՝ օգտագործելով pg_read_all_data և pg_write_all_data նախապես սահմանված դերերը: ՏՐԱՄԱԴՐԵԼ pg_read_all_data user1-ին;
  • Նոր տեղադրությունները լռելյայն գաղտնաբառի նույնականացումն են՝ օգտագործելով SCRAM-SHA-256՝ md5-ի փոխարեն («password_encryption» պարամետրը, երբ ստեղծվում է postgresql.conf, այժմ դրված է «scram-sha-256»):

Source: opennet.ru

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