PostgreSQL 12 izdanje

PostgreSQL tim je najavio izdavanje PostgreSQL 12, najnovije verzije sistema za upravljanje relacionim bazama podataka otvorenog koda.
PostgreSQL 12 je značajno poboljšao performanse upita - posebno kada se radi sa velikim količinama podataka, a takođe je optimizovao korišćenje prostora na disku uopšte.

Nove karakteristike uključuju:

  • implementacija JSON Path jezika upita (najvažniji dio SQL/JSON standarda);
  • optimizacija izvršavanja zajedničkih tabelarnih izraza (WITH);
  • podrška za generisane kolone

Zajednica takođe nastavlja da radi 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 administriranje sistema.

Ovo izdanje uključuje implementaciju interfejsa za plug-in storage engine, koji sada omogućava programerima da kreiraju sopstvene metode skladištenja podataka.

Poboljšanja performansi

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

Indeksi B-stabla, standardni tip indeksiranja u PostgreSQL-u, optimizovani su u verziji 12 za radna opterećenja koja uključuju česte modifikacije indeksa. Korišćenje TPC-C benchmark-a za PostgreSQL 12 pokazalo je prosečno smanjenje od 40% u upotrebi prostora i ukupno povećanje performansi upita.

Upiti prema particioniranim tabelama dobili su primjetna poboljšanja, posebno za tabele koje se sastoje od hiljada particija koje zahtijevaju rad samo sa ograničenim dijelovima nizova podataka. Poboljšane su performanse dodavanja podataka u particionirane tabele pomoću INSERT i COPY, kao i mogućnost pričvršćivanja nove particije bez blokiranja upita.

PostgreSQL 12 je napravio dodatna poboljšanja u indeksiranju koja utiču na ukupne performanse, uključujući:

  • smanjeni troškovi prilikom generisanja WAL-a za tipove indeksa GiST, GIN i SP-GiST;
  • mogućnost kreiranja takozvanih indeksa pokrivanja (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) pomoću CREATE STATISTICS, što pomaže u dobijanju boljih planova upita kada se koriste kolone čije su vrijednosti neravnomjerno raspoređene.

JIT kompilacija pomoću LLVM-a, uvedena u PostgreSQL 11, sada je podrazumevano omogućena. JIT kompilacija poboljšava performanse pri radu sa izrazima u klauzulama WHERE, ciljnim listama, agregatima i nekim internim operacijama. Dostupan je ako ste kompajlirali PostgreSQL sa LLVM-om ili koristite PostgreSQL paket koji je napravljen sa omogućenim LLVM-om.

Poboljšanja mogućnosti SQL jezika i standardne kompatibilnosti

PostgreSQL 12 uveo je mogućnost upita za JSON dokumente koristeći JSON izraze putanje definirane u SQL/JSON standardu. Takvi upiti mogu iskoristiti postojeće mehanizme indeksiranja za dokumente pohranjene u JSONB formatu kako bi efikasno dohvatili podatke.

Uobičajeni tabelarni izrazi, poznati i kao WITH upiti, sada se mogu automatski izvršiti korištenjem zamjene u PostgreSQL 12, što zauzvrat može pomoći u poboljšanju performansi mnogih postojećih upita. U novoj verziji, zamjenski dio WITH upita može se izvršiti samo ako nije rekurzivan, nema nuspojava i referencira se samo jednom u sljedećem dijelu upita.

PostgreSQL 12 uvodi podršku za "generisane kolone". Opisan u SQL standardu, ovaj tip stupca izračunava vrijednost na osnovu sadržaja drugih stupaca u istoj tablici. U ovoj verziji, PostgreSQL podržava "pohranjene generirane kolone", gdje je izračunata vrijednost pohranjena na disku.

Internacionalizacija

PostgreSQL 12 proširuje podršku za ICU upoređivanja dozvoljavajući korisnicima da definiraju "nedeterminističke usporedbe" koje mogu, na primjer, dozvoliti poređenja bez obzira na velika i mala slova ili akcente.

Autentifikacija

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 servera za autentifikaciju preko GSSAPI interfejsa, kao i mogućnost za PostgreSQL da otkrije LDAP servere kada se PostgreSQL kompajlira sa OpenLDAP.

Uz to, PostgreSQL 12 sada podržava opciju višefaktorske autentifikacije. PostgreSQL server sada može zahtijevati od klijenta da pruži važeći SSL certifikat sa odgovarajućim korisničkim imenom koristeći clientcert=verify-full, i kombinovati ovo sa posebnim zahtjevom za metodu provjere autentičnosti (npr. scram-sha-256).

Administracija

PostgreSQL 12 je uveo mogućnost izvođenja neblokirajućih rekonstrukcija indeksa pomoću naredbe REINDEX CONCURRENTLY. Ovo omogućava korisnicima da izbjegnu zastoje DBMS-a tokom dugih rekonstrukcija indeksa.

Dodatno, u PostgreSQL 12, možete omogućiti ili onemogućiti kontrolne sume stranice u klasteru za gašenje pomoću naredbe pg_checksums. Ranije su kontrolni sumi stranica, funkcija koja pomaže u provjeri integriteta podataka pohranjenih na disku, mogli biti omogućeni samo kada je PostgreSQL klaster inicijaliziran pomoću initdb.

izvor: linux.org.ru

Dodajte komentar