PostgreSQL 14 -julkaisu

Vuoden kehitystyön jälkeen PostgreSQL 14 DBMS:n uusi vakaa haara on julkaistu. Uuden haaran päivitykset julkaistaan ​​viiden vuoden aikana marraskuuhun 2026 saakka.

Tärkeimmät innovaatiot:

  • Lisätty tuki JSON-tietojen käyttämiselle taulukon kaltaisten lausekkeiden avulla: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM testi WHERE details['attributes']['size'] = '"keskikokoinen"';

    Samanlainen syntaksi on toteutettu hstore-tyypin tarjoamille avain/arvotiedoille. Tämä syntaksi toteutettiin alun perin yleismaailmallisella viitekehyksellä, jota voidaan tulevaisuudessa käyttää muihin tyyppeihin. Esimerkki hstore-tyypistä: INSERT INTO mytable VALUES ('a=>b, c=>d'); SELECT h['a'] FROM mytable; PÄIVITYS mytable SET h['c'] = 'uusi';

  • Alueiden määrittelyyn tarkoitettujen tyyppien perhettä on laajennettu uusilla "multirange"-tyypeillä, joiden avulla voit määrittää järjestetyt luettelot ei-päällekkäisistä arvoalueista. Jokaisen olemassa olevan aluetyypin lisäksi ehdotetaan omaa monialuetyyppiään, esimerkiksi tyyppi "int4range" vastaa "int4multirange" ja tyyppi "daterange" vastaa "datemultirange". Uusien tyyppien käyttö yksinkertaistaa monimutkaisia ​​aluejonoja käsittelevien kyselyjen suunnittelua. SELECT '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(lukualue(1.0, 14.0), numeroalue(20.0, 25.0));
  • Suuria yhteyksiä prosessoivien korkeakuormiteisten järjestelmien suorituskyvyn parantamiseksi on tehty optimointeja. Joissakin testeissä havaitaan kaksinkertainen suorituskyvyn kasvu.
  • B-puu-indeksien tehokkuutta on parannettu ja taulukoiden usein päivitetyn indeksin kasvuongelma on ratkaistu.
  • Lisätty tuki asiakaspuolen (toteutettu libpq-tasolla) pyyntöjen liukuhihnalähetystilalle, jonka avulla voit nopeuttaa merkittävästi tietokantaskenaarioita, jotka liittyvät useiden pienten kirjoitustoimintojen suorittamiseen (INSERT/UPDATE/DELETE) lähettämällä seuraavaan pyyntöön odottamatta edellisen tulosta. Tila auttaa myös nopeuttamaan työskentelyä yhteyksissä, joissa on pitkiä pakettien toimitusviiveitä.
  • Parannetut ominaisuudet hajautetuille kokoonpanoille, jotka sisältävät useita PostgreSQL-palvelimia. Loogisen replikoinnin toteutuksessa on nyt mahdollista lähettää käynnissä olevia tapahtumia suoratoistotilassa, mikä voi parantaa merkittävästi suurten tapahtumien replikoinnin suorituskykyä. Lisäksi loogisen replikoinnin aikana vastaanotettujen tietojen looginen dekoodaus on optimoitu.
  • Ulkoisten taulukoiden yhdistämismekanismi Foreign Data Wrapper (postgres_fdw) on lisännyt tuen rinnakkaiselle kyselynkäsittelylle, joka on tällä hetkellä käytettävissä vain yhteyden yhteydessä muihin PostgreSQL-palvelimiin. postgres_fdw lisää myös tuen tietojen lisäämiselle ulkoisiin taulukoihin erätilassa ja mahdollisuuden tuoda ositettuja taulukoita määrittämällä "IMPORT FOREIGN SCHEMA" -direktiivin.
  • VACUUM-toiminnan (roskien keräys ja levyvaraston pakkaus) toteutukseen on tehty optimointeja. Hätäsiivoustila on lisätty, joka ohittaa ei-välttämättömät puhdistustoimenpiteet, jos tapahtumatunnuksen kiertoolosuhteet luodaan. Vähentynyt lisäkustannus käsiteltäessä indeksejä B-Tree-muodossa. Tietokannan toiminnasta tilastoja keräävän ANALYZE-operaation suorittamista on nopeutettu merkittävästi.
  • Lisätty mahdollisuus määrittää TOAST-järjestelmässä käytetty pakkausmenetelmä, joka vastaa suurten tietojen, kuten tekstilohkojen tai geometristen tietojen, tallentamisesta. Pglz-pakkausmenetelmän lisäksi TOAST voi nyt käyttää LZ4-algoritmia.
  • DBMS:n toiminnan valvonnan työkaluja on laajennettu. Lisätty näkymiä seuraamaan COPY-komentojen edistymistä (pg_stat_progress_copy), toisinnuspaikkojen tilastoja (pg_stat_replication_slots) ja WAL-tapahtumalokiin liittyvää toimintaa (pg_stat_wal). compute_query_id-toiminto on lisätty, jonka avulla useat alijärjestelmät, kuten pg_stat_activity ja EXPLAIN VERBOSE, voivat seurata pyyntöjä määrittämällä jokaiselle pyynnölle yksilöllisen tunnisteen.
  • Kyselysuunnittelijaan on lisätty optimointeja kyselyiden rinnakkaiskäsittelyn parantamiseksi ja peräkkäisten tietueiden skannaustoimintojen samanaikaisen suorituskyvyn parantamiseksi, kyselyiden rinnakkaissuorittamisen PL/pgSQL:ssä käyttämällä "RETURN QUERY" -komentoa sekä kyselyiden rinnakkaista suorittamista " PÄIVITYS AINEISTETTU NÄKYMÄ”. Syklisten sisäkkäisten yhdistämisten (join) suorituskyvyn parantamiseksi on otettu käyttöön lisävälimuistin tuki.
  • Kehittyneitä tilastoja voidaan nyt käyttää lausekkeiden optimointiin, ja inkrementaalista lajittelua voidaan nyt käyttää ikkunatoimintojen optimointiin.
  • Tallennetut menettelyt, joiden avulla voit hallita tapahtumia koodilohkoissa, tukevat nyt palautustietojen määrittelyä "OUT"-parametreilla.
  • Lisätty päivämäärä_bin-funktio pyöristämään aikaleima-arvoja tietyn aikavälin mukaisesti. SELECT date_bin('15 minuuttia', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020 klo 02
  • Lisätty SQL-standardissa määritellyt SEARCH- ja CYCLE-lausekkeet helpottamaan syklien järjestämistä ja tunnistamista rekursiivisissa yhteisissä taulukkolausekkeissa (CTE). REKURSIIVISELLA hakupuulla(id, linkki, data) AS ( SELECT t.id, t.link, t.data FROM FROM t UNION ALL SELECT t.id, t.link, t.data FROM FROM t, search_tree st WHERE t. id = st.link ) SEARCH DEPTH FIRST BY id SET ordercol SELECT * FROM search_tree ORDER BY ordercol;
  • Psql-apuohjelmassa komentojen automaattista täydennystä välilehdillä on parannettu, toimintoargumenttien näyttömahdollisuus on lisätty "\df"-komentoon ja näytettävät tilastot on laajennettu "\dX"-komentoon.
  • Käyttäjille on mahdollista määrittää vain luku- tai kirjoitusoikeudet. Yksittäisten taulukoiden, näkymien ja skeemojen käyttöoikeudet voidaan asettaa käyttämällä ennalta määritettyjä rooleja pg_read_all_data ja pg_write_all_data. GRANT pg_read_all_data käyttäjälle1;
  • Uudet asennukset käyttävät oletuksena salasanatodennusta käyttämällä SCRAM-SHA-256:ta md5:n sijaan ("password_encryption"-parametri postgresql.conf-tiedostoa luotaessa on nyt asetettu arvoon "scram-sha-256".

Lähde: opennet.ru

Lisää kommentti