Objava PostgreSQL 12

Grupa razvojnih inženjera PostgreSQL objavila je izlazak PostgreSQL 12, najnovije verzije sustava za upravljanje relacijskim bazama podataka s otvorenim izvorom.
U PostgreSQL 12 značajno je poboljšana izvedba upita – posebno u radu s velikim količinama podataka, a također je optimizirana upotreba prostor na disku u cjelini.

Među novim mogućnostima:

  • implementacija jezika upita JSON Path (ključnog dijela standarda SQL/JSON);
  • optimizacija izvršavanja zajedničkih tabličnih izraza (WITH);
  • podrška generiranim stupcima

Također, zajednica nastavlja rad na proširivosti i pouzdanosti PostgreSQL-a, razvijajući podršku za internacionalizaciju, mogućnosti autentifikacije, te pružajući jednostavnije načine administracije sustava.

Ovo izdanje uključuje implementaciju sučelja priključnih motora za skladištenje, što sada omogućuje programerima da kreiraju vlastite metode pohrane podataka.

Poboljšanja performansi

PostgreSQL 12 uključuje značajna poboljšanja performansi i procedura održavanja za sustave indeksiranja i particioniranja.

B-tree indeksi — standardni tip indeksiranja u PostgreSQL-u, optimizirani su u verziji 12 za opterećenja koja uključuju česte modifikacije indeksa. Korištenje referentnog testa TPC-C za PostgreSQL 12 pokazalo je smanjenje korištenja prostora u prosjeku za 40% i ukupno povećanje performansi upita.

Upiti prema particioniranim tablicama doživjeli su značajna poboljšanja, posebno za tablice koje se sastoje od tisuća sekcija, omogućujući rad isključivo s ograničenim dijelovima skupova podataka. Poboljšana je performansa dodavanja podataka u particionirane tablice pomoću INSERT i COPY, a također je omogućena povezanost nove sekcije bez blokiranja izvršenih upita.

U PostgreSQL 12 napravljena su dodatna unapređenja u indeksiranju koja utječu na ukupne performanse, uključujući:

  • smanjenje preopterećenja pri generaciji WAL za tipove indeksa GiST, GIN i SP-GiST;
  • mogućnost stvaranja takozvanih pokrivnih indeksa (covering indexes, predlog INCLUDE) na GiST indekse;
  • mogućnost izvršavanja upita "najbližih susjeda" (k-NN search) koristeći operator udaljenosti () i korištenjem SP-GiST indeksa;
  • podršku za prikupljanje statistike najčešćih vrijednosti (most-common value, MCV) putem CREATE STATISTICS, što pomaže u dobivanju boljih planova izvršavanja upita kada se koriste stupci čije su vrijednosti nerazmjerno raspoređene.

JIT kompilacija korištenjem LLVM, koja je uvedena u PostgreSQL 11, sada je uključena prema zadanim postavkama. JIT kompilacija omogućava poboljšanje performansi pri radu s izrazima u WHERE klauzulama, ciljnim popisima, agregatima i nekim internim operacijama. Dostupna je ako ste kompajlirali PostgreSQL s LLVM ili koristite PostgreSQL paket koji je izgrađen s uključenim LLVM-om.

Poboljšanja mogućnosti jezika SQL i usklađenosti sa standardom

U PostgreSQL 12 uvedena je mogućnost izvođenja upita na JSON dokumentima koristeći JSON putovne izraze definirane u SQL/JSON standardu. Ovi upiti mogu koristiti postojeće mehanizme indeksiranja za dokumente pohranjene u JSONB formatu radi učinkovitog dobivanja podataka.

Zajednički tablični izrazi, također poznati kao upiti s WITH, sada mogu automatski izvršavati s primjenom supstitucije, što može pomoći u poboljšanju performansi mnogih postojećih upita. U novoj verziji, dio upita WITH može se izvršiti s supstitucijom samo ako nije rekuzivan, nema nuspojava i na njega se poziva samo jednom u sljedećem dijelu upita.

U PostgreSQL 12 pojavljuje se podrška za 'generirane stupce'. Ovaj tip stupca, definirani u SQL standardu, izračunava vrijednost na temelju sadržaja drugih stupaca u istoj tablici. U ovoj verziji, PostgreSQL podržava 'pohranjene generirane stupce', gdje se izračunata vrijednost pohranjuje na disku.

Međunarodizacija

PostgreSQL 12 proširuje podršku za ICU usporedbe, omogućavajući korisnicima da definiraju 'nedeterminističke usporedbe', koje mogu, na primjer, omogućiti usporedbe bez obzira na velika ili mala slova ili naglaske.

Autentifikacija

PostgreSQL proširuje svoju podršku za pouzdane metode autentifikacije s nekoliko poboljšanja koja osiguravaju dodatnu sigurnost i funkcionalnost. U ovom izdanju predstavljeno je šifriranje s klijentske i serverske strane za autentifikaciju putem GSSAPI sučelja, kao i mogućnost da PostgreSQL otkrije servere LDAP, ako je PostgreSQL kompiliran s OpenLDAP-om.

Osim toga, PostgreSQL 12 sada podržava opciju više faktorske autentifikacije. Sada PostgreSQL server može zatražiti od klijenta da pruži važeći SSL-certifikat s odgovarajućim korisničkim imenom koristeći clientcert=verify-full, i kombinirati to s posebnim zahtjevom za načinom autentifikacije (npr. scram-sha-256).

Administracija

U PostgreSQL 12 uvedena je mogućnost izvođenja neblokirajuće rekonstrukcije indeksa koristeći REINDEX CONCURRENTLY. To omogućava korisnicima da izbjegnu zastoje u radu DBMS-a tijekom dugotrajnog rekonstrukcije indeksa.

Osim toga, u PostgreSQL 12 moguće je aktivirati ili deaktvirati kontrolne sume stranica u klasteru koji je isključen, koristeći pg_checksums. Ranije su se kontrolne sume stranica - funkcija koja pomaže provjeriti cjelovitost podataka pohranjenih na disku - mogle uključiti samo tijekom inicijalizacije klastera PostgreSQL pomoću initdb.

Izvor: linux.org.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster