Izdanje PostgreSQL 12

PostgreSQL tim najavio je izdanje PostgreSQL 12, najnovije verzije sustava za upravljanje relacijskom bazom podataka otvorenog koda.
PostgreSQL 12 značajno je poboljšao izvedbu upita - osobito pri radu s velikim količinama podataka, a također je optimizirao korištenje prostora na disku općenito.

Nove značajke uključuju:

  • implementacija JSON Path query language (najvažniji dio SQL/JSON standarda);
  • optimizacija izvođenja zajedničkih tabličnih izraza (WITH);
  • podrška za generirane stupce

Zajednica također nastavlja raditi na proširivosti i pouzdanosti PostgreSQL-a, razvijajući podršku za internacionalizaciju, mogućnosti autentifikacije i pružajući lakše načine za administraciju sustava.

Ovo izdanje uključuje implementaciju sučelja za pluggable pohranu, što sada omogućuje programerima stvaranje vlastitih metoda pohrane podataka.

Poboljšanja performansi

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

Indeksi B-stabla, standardna vrsta indeksiranja u PostgreSQL-u, optimizirani su u verziji 12 za radna opterećenja koja uključuju česte izmjene indeksa. Korištenje referentne vrijednosti TPC-C za PostgreSQL 12 pokazalo je prosječno smanjenje korištenja prostora od 40% i ukupno povećanje izvedbe upita.

Upiti prema particioniranim tablicama dobili su primjetna poboljšanja, posebno za tablice koje se sastoje od tisuća particija koje zahtijevaju rad samo s ograničenim dijelovima nizova podataka. Poboljšana je izvedba dodavanja podataka u particionirane tablice korištenjem INSERT i COPY, kao i mogućnost pripajanja nove particije bez blokiranja upita.

PostgreSQL 12 napravio je dodatna poboljšanja u indeksiranju koja utječu na ukupnu izvedbu, uključujući:

  • smanjeni troškovi prilikom generiranja WAL-a za GiST, GIN i SP-GiST vrste indeksa;
  • mogućnost stvaranja tzv. pokrivnih indeksa (INCLUDE klauzula) na GiST indeksima;
  • mogućnost izvođenja upita "najbližeg susjeda" (k-NN pretraga) korištenjem operatora udaljenosti () i korištenjem SP-GiST indeksa;
  • podrška za prikupljanje statistike najčešće vrijednosti (MCV) korištenjem CREATE STATISTICS, koja pomaže u dobivanju boljih planova upita kada se koriste stupci čije su vrijednosti neravnomjerno raspoređene.

JIT kompilacija pomoću LLVM-a, uvedena u PostgreSQL 11, sada je omogućena prema zadanim postavkama. JIT kompilacija poboljšava izvedbu pri radu s izrazima u WHERE klauzulama, ciljnim listama, agregatima i nekim internim operacijama. Dostupan je ako ste kompajlirali PostgreSQL s LLVM-om ili koristite PostgreSQL paket koji je izgrađen s omogućenim LLVM-om.

Poboljšanja mogućnosti SQL jezika i standardne kompatibilnosti

PostgreSQL 12 uveo je mogućnost postavljanja upita JSON dokumentima pomoću JSON izraza staze definiranih u SQL/JSON standardu. Takvi upiti mogu iskoristiti postojeće mehanizme indeksiranja za dokumente pohranjene u JSONB formatu za učinkovito dohvaćanje podataka.

Uobičajeni tablični izrazi, također poznati kao WITH upiti, sada se mogu automatski izvršiti pomoću zamjene u PostgreSQL 12, što zauzvrat može pomoći u poboljšanju izvedbe mnogih postojećih upita. U novoj verziji, zamjenski dio upita WITH može se izvršiti samo ako nije rekurzivan, nema nuspojava i referenciran je samo jednom u sljedećem dijelu upita.

PostgreSQL 12 uvodi podršku za "generirane stupce". Opisano u SQL standardu, ova vrsta stupca 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 disk.

Internacionalizacija

PostgreSQL 12 proširuje podršku za ICU usporedbe dopuštajući korisnicima definiranje "nedeterminističkih usporedbi" koje mogu, na primjer, dopustiti usporedbe koje nisu osjetljive na velika i mala slova ili naglaske.

ovjera

PostgreSQL proširuje svoju podršku za jake metode provjere autentičnosti s nekoliko poboljšanja koja pružaju dodatnu sigurnost i funkcionalnost. Ovo izdanje uvodi enkripciju na strani klijenta i na strani poslužitelja za autentifikaciju preko GSSAPI sučelja, kao i mogućnost da PostgreSQL otkrije LDAP poslužitelje kada se PostgreSQL kompajlira s OpenLDAP-om.

Dodatno, PostgreSQL 12 sada podržava opciju autentifikacije s više faktora. Poslužitelj PostgreSQL sada može zahtijevati od klijenta da pruži važeći SSL certifikat s odgovarajućim korisničkim imenom pomoću clientcert=verify-full i kombinirati to s posebnim zahtjevom za metodu provjere autentičnosti (npr. scram-sha-256).

uprava

PostgreSQL 12 uveo je mogućnost izvođenja ponovne izgradnje indeksa bez blokiranja pomoću naredbe REINDEX CONCURRENTLY. Ovo omogućuje korisnicima da izbjegnu prekid rada DBMS-a tijekom dugih ponovnih izgradnja indeksa.

Osim toga, u PostgreSQL 12 možete omogućiti ili onemogućiti kontrolne zbrojeve stranica u klasteru za isključivanje pomoću naredbe pg_checksums. Prethodno su kontrolni zbrojevi stranica, značajka koja pomaže provjeriti integritet podataka pohranjenih na disku, mogli biti omogućeni samo kada je klaster PostgreSQL inicijaliziran korištenjem initdb.

Izvor: linux.org.ru

Dodajte komentar