Izdaja PostgreSQL 12

Ekipa PostgreSQL je napovedala izdajo PostgreSQL 12, najnovejše različice odprtokodnega sistema za upravljanje relacijskih baz podatkov.
PostgreSQL 12 je znatno izboljšal zmogljivost poizvedb – še posebej pri delu z velikimi količinami podatkov, optimiziral pa je tudi uporabo prostora na disku na splošno.

Nove funkcije vključujejo:

  • implementacija poizvedovalnega jezika JSON Path (najpomembnejši del standarda SQL/JSON);
  • optimizacija izvajanja skupnih tabelnih izrazov (WITH);
  • podpora za ustvarjene stolpce

Skupnost prav tako še naprej dela na razširljivosti in zanesljivosti PostgreSQL, razvija podporo za internacionalizacijo, zmožnosti preverjanja pristnosti in zagotavlja lažje načine za upravljanje sistema.

Ta izdaja vključuje implementacijo vmesnika za vtične pomnilniške mehanizme, ki zdaj razvijalcem omogoča ustvarjanje lastnih metod shranjevanja podatkov.

Izboljšave zmogljivosti

PostgreSQL 12 vključuje znatne izboljšave zmogljivosti in vzdrževanja za sisteme indeksiranja in particioniranja.

Indeksi B-drevesa, standardna vrsta indeksiranja v PostgreSQL, so bili v različici 12 optimizirani za delovne obremenitve, ki vključujejo pogoste spremembe indeksa. Uporaba merila uspešnosti TPC-C za PostgreSQL 12 je pokazala povprečno 40-odstotno zmanjšanje uporabe prostora in splošno povečanje zmogljivosti poizvedb.

Poizvedbe po particioniranih tabelah so bile deležne opaznih izboljšav, zlasti za tabele, sestavljene iz tisočih particij, ki zahtevajo delo le z omejenimi deli podatkovnih nizov. Zmogljivost dodajanja podatkov v particionirane tabele z uporabo INSERT in COPY je bila izboljšana, prav tako pa je bila izboljšana tudi možnost pripenjanja nove particije brez blokiranja poizvedb.

PostgreSQL 12 je naredil dodatne izboljšave indeksiranja, ki vplivajo na splošno zmogljivost, vključno z:

  • zmanjšani stroški pri generiranju WAL za vrste indeksov GiST, GIN in SP-GiST;
  • možnost ustvarjanja tako imenovanih pokrivnih indeksov (klavzula INCLUDE) na indeksih GiST;
  • zmožnost izvajanja poizvedb »najbližjega soseda« (iskanje k-NN) z uporabo operatorja razdalje (<->) in z uporabo indeksov SP-GiST;
  • podpora za zbiranje statistike najpogostejših vrednosti (MCV) z uporabo CREATE STATISTICS, ki pomaga pridobiti boljše načrte poizvedbe pri uporabi stolpcev, katerih vrednosti so neenakomerno porazdeljene.

Prevajanje JIT z uporabo LLVM, predstavljeno v PostgreSQL 11, je zdaj privzeto omogočeno. Prevajanje JIT izboljša zmogljivost pri delu z izrazi v členih WHERE, ciljnih seznamih, agregatih in nekaterih notranjih operacijah. Na voljo je, če ste prevedli PostgreSQL z LLVM ali uporabljate paket PostgreSQL, ki je bil zgrajen z omogočenim LLVM.

Izboljšave zmožnosti jezika SQL in standardne združljivosti

PostgreSQL 12 je uvedel možnost poizvedovanja po dokumentih JSON z uporabo izrazov poti JSON, definiranih v standardu SQL/JSON. Takšne poizvedbe lahko izkoristijo obstoječe mehanizme indeksiranja za dokumente, shranjene v formatu JSONB, za učinkovito pridobivanje podatkov.

Pogoste izraze tabele, znane tudi kot poizvedbe WITH, je zdaj mogoče samodejno izvesti z zamenjavo v PostgreSQL 12, kar lahko pomaga izboljšati učinkovitost številnih obstoječih poizvedb. V novi različici je substitucijski del poizvedbe WITH mogoče izvesti le, če ni rekurziven, nima stranskih učinkov in se nanj sklicuje samo enkrat v naslednjem delu poizvedbe.

PostgreSQL 12 uvaja podporo za "generirane stolpce". Ta vrsta stolpca, opisana v standardu SQL, izračuna vrednost na podlagi vsebine drugih stolpcev v isti tabeli. V tej različici PostgreSQL podpira "shranjene generirane stolpce", kjer je izračunana vrednost shranjena na disku.

Internacionalizacija

PostgreSQL 12 razširja podporo za primerjave ICU tako, da uporabnikom omogoča definiranje "nedeterminističnih primerjav", ki lahko na primer dovolijo primerjave, ki niso občutljive na velike in male črke ali naglase.

Preverjanje pristnosti

PostgreSQL razširja svojo podporo za metode močne avtentikacije z več izboljšavami, ki zagotavljajo dodatno varnost in funkcionalnost. Ta izdaja uvaja šifriranje na strani odjemalca in na strani strežnika za preverjanje pristnosti prek vmesnikov GSSAPI, kot tudi možnost, da PostgreSQL odkrije strežnike LDAP, ko je PostgreSQL preveden z OpenLDAP.

Poleg tega PostgreSQL 12 zdaj podpira možnost večfaktorske avtentikacije. Strežnik PostgreSQL lahko zdaj od odjemalca zahteva veljavno potrdilo SSL z ustreznim uporabniškim imenom z uporabo clientcert=verify-full in to združi z zahtevo po ločeni metodi preverjanja pristnosti (npr. scram-sha-256).

Uprava

PostgreSQL 12 je uvedel zmožnost izvajanja neblokirnih ponovnih gradenj indeksov z uporabo ukaza REINDEX CONCURRENTLY. To omogoča uporabnikom, da se izognejo izpadom DBMS med dolgotrajnimi vnovičnimi izgradnjami indeksov.

Poleg tega lahko v PostgreSQL 12 omogočite ali onemogočite kontrolne vsote strani v zaustavitveni gruči z ukazom pg_checksums. Prej je bilo mogoče kontrolne vsote strani, funkcijo, ki pomaga preveriti celovitost podatkov, shranjenih na disku, omogočiti le, ko je bila gruča PostgreSQL inicializirana z initdb.

Vir: linux.org.ru

Dodaj komentar