PostgreSQL 14 DBMS idasilẹ

Lẹhin ọdun kan ti idagbasoke, ẹka iduroṣinṣin tuntun ti PostgreSQL 14 DBMS ti ṣe atẹjade Awọn imudojuiwọn fun ẹka tuntun yoo tu silẹ ni ọdun marun titi di Oṣu kọkanla ọdun 2026.

Awọn imotuntun akọkọ:

  • Àfikún àtìlẹ́yìn fún wíwọlé dátà JSON nípa lílo àwọn ọ̀rọ̀ àkópọ̀ bíi: Yan ('{"postgres": {"ìtúsílẹ̀": 14}}'::jsonb)['postgres']['itusilẹ']; Yan * LATI idanwo NIBI awọn alaye['awọn abuda'] ['iwọn'] = ''alabọde'';

    A ṣe imuse sintasi ti o jọra fun data bọtini/iye ti a pese nipasẹ iru hstore. Sintasi yii jẹ imuse ni ibẹrẹ ni lilo ilana gbogbo agbaye, eyiti o le ṣee lo ni ọjọ iwaju fun awọn iru miiran. Apeere fun iru hstore: FI SINU VALUES mytable ('a=>b, c=>d'); Yan h['a'] LATI mytable; TUNTUN SET mytable h['c'] = 'tuntun';

  • Idile ti awọn iru fun asọye awọn sakani ti ni afikun pẹlu awọn oriṣi “multirange” tuntun, eyiti o gba ọ laaye lati tokasi awọn atokọ aṣẹ ti awọn sakani ti kii ṣe agbekọja ti awọn iye. Ni afikun si iru ibiti o wa tẹlẹ kọọkan, iru multirange tirẹ ni a dabaa, fun apẹẹrẹ, iru “int4range” ni ibamu si “int4multirange”, ati iru “daterange” ni ibamu si “datemultirange”. Lilo awọn oriṣi tuntun jẹ ki o rọrun apẹrẹ ti awọn ibeere ti o ṣe afọwọyi awọn ilana eka ti awọn sakani. Yan '{[3,7), [8,9)}':: int4multirange; Yan nummultirange (numrange (1.0, 14.0), numrange (20.0, 25.0));
  • Awọn iṣapeye ti ṣe lati mu iṣẹ ṣiṣe ti awọn ọna ṣiṣe fifuye giga ti n ṣatunṣe nọmba nla ti awọn asopọ. Ni diẹ ninu awọn idanwo, ilosoke ilọpo meji ninu iṣẹ ni a ṣe akiyesi.
  • Iṣiṣẹ ti awọn atọka B-igi ti ni ilọsiwaju ati iṣoro pẹlu idagbasoke itọka nigbati awọn tabili ṣe imudojuiwọn nigbagbogbo ti ni ipinnu.
  • Atilẹyin ti a ṣafikun fun ẹgbẹ alabara (ti a ṣe ni ipele libpq) ipo gbigbe awọn ibeere ti opo gigun ti epo, eyiti o fun ọ laaye lati yara yara awọn oju iṣẹlẹ data ti o ni nkan ṣe pẹlu ṣiṣe nọmba nla ti awọn iṣẹ kikọ kekere (INSERT/UPDATE/PA) nipa fifiranṣẹ awọn ibeere atẹle lai duro abajade ti iṣaaju. Ipo naa tun ṣe iranlọwọ fun iyara iṣẹ lori awọn asopọ pẹlu awọn idaduro ifijiṣẹ gigun.
  • Awọn agbara imudara fun awọn atunto pinpin pẹlu ọpọ olupin PostgreSQL. Ni imuse ti atunṣe ọgbọn, bayi o ṣee ṣe lati firanṣẹ awọn iṣowo ni ilọsiwaju ni ipo ṣiṣanwọle, eyiti o le mu ilọsiwaju iṣẹ ṣiṣe ti awọn iṣowo nla pọ si. Ni afikun, iyipada ọgbọn ti data ti o gba lakoko isọdọtun ọgbọn ti jẹ iṣapeye.
  • Ilana fun sisopọ awọn tabili ita ita Wrapper Data Ajeji (postgres_fdw) ti ṣafikun atilẹyin fun sisẹ ibeere ti o jọra, eyiti o wulo lọwọlọwọ nigbati o ba sopọ si awọn olupin PostgreSQL miiran. postgres_fdw tun ṣe afikun atilẹyin fun fifi data kun si awọn tabili itagbangba ni ipo ipele ati agbara lati gbe awọn tabili ti o pin wọle nipa sisọ ilana “IṢẸRỌ ỌJỌ ỌJỌ ỌJỌRỌ”.
  • Awọn iṣapeye ti ṣe si imuse ti iṣẹ VACUUM (ikojọpọ idoti ati apoti ti ipamọ disk). Ipo afọmọ pajawiri ti ni afikun ti o fo awọn iṣẹ ṣiṣe mimọ ti ko ṣe pataki ti awọn ipo iyipo ID idunadura ti ṣẹda. Dinku lori oke nigbati o ba n ṣiṣẹ awọn atọka ni ọna kika B-Igi. Ipaniyan ti iṣẹ “ANALYZE”, eyiti o gba awọn iṣiro nipa iṣẹ ṣiṣe data, ti ni iyara pupọ.
  • Ṣe afikun agbara lati tunto ọna funmorawon ti a lo ninu eto TOAST, eyiti o jẹ iduro fun titoju data nla, gẹgẹbi awọn bulọọki ti ọrọ tabi alaye jiometirika. Ni afikun si ọna funmorawon pglz, TOAST le lo algorithm LZ4 bayi.
  • Awọn irinṣẹ fun ibojuwo iṣẹ ti DBMS ti ni ilọsiwaju. Awọn iwo ti a ṣafikun lati tọpa ilọsiwaju ti awọn aṣẹ COPY (pg_stat_progress_copy), awọn iṣiro nipa awọn iho ẹda (pg_stat_replication_slots) ati iṣẹ ṣiṣe ti o ni ibatan si iwe iṣowo WAL (pg_stat_wal). A ti ṣafikun iṣẹ compute_query_id, eyiti o mu ki ọpọlọpọ awọn ọna ṣiṣe abẹlẹ ṣiṣẹ, bii pg_stat_activity ati EXPLAIN VERBOSE, lati tọpinpin awọn ibeere nipa yiyan idamọ alailẹgbẹ fun ibeere kọọkan.
  • A ti ṣafikun awọn iṣapeye si oluṣeto ibeere lati mu ilọsiwaju sisẹ ti awọn ibeere ati ilọsiwaju iṣẹ ṣiṣe nigbakanna ti awọn iṣẹ ọlọjẹ igbasilẹ lẹsẹsẹ, ipaniyan iru awọn ibeere ni PL/pgSQL ni lilo pipaṣẹ “PADADA QUERY”, ati ipaniyan iru awọn ibeere ni “ TÚN WO ÀṢẸ́”. Lati mu iṣẹ ṣiṣe ti awọn akojọpọ itẹ-ẹiyẹ gigun kẹkẹ (darapọ), atilẹyin fun afikun caching ti ni imuse.
  • Awọn iṣiro to ti ni ilọsiwaju le ṣee lo ni bayi lati mu awọn ikosile pọ si, ati titọpa afikun le ṣee lo lati mu awọn iṣẹ window dara si.
  • Awọn ilana ipamọ ti o gba ọ laaye lati ṣakoso awọn iṣowo ni awọn bulọọki koodu ni bayi ṣe atilẹyin asọye data ipadabọ nipa lilo awọn aye “OUT”.
  • Ṣafikun iṣẹ date_bin si awọn iye timestamp yika ni ibamu si aarin kan pato. Yan date_bin('iṣẹju 15', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP'2001-01-01'); 2020-02-11 15:30:00
  • Ṣafikun WÁ ati awọn ikosile CYCLE ti asọye ni boṣewa SQL lati jẹ ki o rọrun lati paṣẹ ati ṣe idanimọ awọn iyipo ni Awọn ikosile Tabili ti o wọpọ (CTE). PẸLU RECURSIVE search_tree(id, ọna asopọ, data) AS (Yan t.id, t.link, t.data LATI igi t UNION GBOGBO YAN t.id, t.link, t.data LATI igi t, search_tree st WHERE t. id = st.link ) WÁ Ìjìnlẹ̀ KÌÍNÍ BY id SET ordercol Yan * LATI search_tree IBERE BY ordercol;
  • Ninu ohun elo psql, adaṣe adaṣe ti awọn aṣẹ pẹlu awọn taabu ti ni ilọsiwaju, agbara lati ṣafihan awọn ariyanjiyan iṣẹ ti ṣafikun pipaṣẹ “\ df”, ati pe awọn iṣiro ti o han ti gbooro si aṣẹ “\ dX”.
  • O ṣee ṣe lati fi kika-nikan tabi awọn anfani kikọ-nikan fun awọn olumulo. Awọn anfani ni a le ṣeto sori awọn tabili kọọkan, awọn iwo, ati awọn eto nipa lilo pg_read_all_data ati awọn ipa ti a ti yan tẹlẹ pg_write_all_data. GRANT pg_read_all_data TO olumulo1;
  • Awọn fifi sori ẹrọ titun aiyipada si ijẹrisi ọrọ igbaniwọle nipa lilo SCRAM-SHA-256 dipo md5 (paramita “password_encryption” nigba ti o ṣẹda postgresql.conf ti ṣeto si 'scram-sha-256').

orisun: opennet.ru

Fi ọrọìwòye kun