PostgreSQL 12 eldono

La PostgreSQL-teamo anoncis la liberigon de PostgreSQL 12, la plej nova versio de la malferma fonta rilata datumbaza administradsistemo.
PostgreSQL 12 signife plibonigis demandan rendimenton - precipe kiam oni laboras kun grandaj volumoj da datumoj, kaj ankaŭ optimumigis la uzon de diskspaco ĝenerale.

Novaj funkcioj inkluzivas:

  • efektivigo de la demandlingvo JSON Path (la plej grava parto de la SQL/JSON-normo);
  • optimumigo de ekzekuto de oftaj tabelesprimoj (KUN);
  • subteno por generitaj kolumnoj

La komunumo ankaŭ daŭre laboras pri la etendebleco kaj fidindeco de PostgreSQL, disvolvante subtenon por internaciigo, aŭtentikigkapabloj, kaj disponigante pli facilajn manierojn administri la sistemon.

Ĉi tiu eldono inkluzivas la efektivigon de interfaco por ŝtopeblaj stokadmotoroj, kiu nun permesas al programistoj krei siajn proprajn datumstokadmetodojn.

Rendimentaj plibonigoj

PostgreSQL 12 inkluzivas signifajn agadon kaj bontenajn plibonigojn por indeksado kaj dispartigo de sistemoj.

B-arbaj indeksoj, la norma indeksa tipo en PostgreSQL, estis optimumigitaj en versio 12 por laborkvantoj kiuj implikas oftajn indeksajn modifojn. Uzado de la komparnormo TPC-C por PostgreSQL 12 montris averaĝan 40%-redukton en spaca uzado kaj ĝenerala pliiĝo en demanda rendimento.

Demandoj kontraŭ dividitaj tabloj ricevis rimarkindajn plibonigojn, precipe por tabeloj konsistantaj el miloj da sekcioj kiuj postulas labori kun nur limigitaj partoj de la datumtabeloj. La agado de aldono de datumoj al dividitaj tabloj per INSERT kaj COPY estis plibonigita, same kiel la kapablo ligi novan sekcion sen blokado de demandoj.

PostgreSQL 12 faris pliajn plibonigojn al indeksado de tiu efiko ĝenerala efikeco, inkluzive de:

  • reduktita supre dum generado de WAL por GiST, GIN kaj SP-GiST-indekstipoj;
  • la kapablo krei tiel nomatajn kovrantajn indeksojn (INCLUDE klaŭzo) sur GiST-indeksoj;
  • la kapablo fari "plej proksimajn najbarajn" demandojn (k-NN-serĉo) uzante la distancan funkciigiston (<->) kaj uzante SP-GiST-indeksojn;
  • subteno por kolektado de plej oftaj valoraj statistikoj (MCV) per CREATE STATISTICS, kiu helpas akiri pli bonajn demandplanojn kiam oni uzas kolumnojn, kies valoroj estas malegale distribuitaj.

JIT-kompilo per LLVM, lanĉita en PostgreSQL 11, nun estas ebligita defaŭlte. JIT-kompilo plibonigas efikecon kiam oni laboras kun esprimoj en WHERE-frazoj, cellistoj, agregaĵoj kaj iuj internaj operacioj. Ĝi disponeblas se vi kompilis PostgreSQL kun LLVM aŭ uzas PostgreSQL-pakaĵon, kiu estis konstruita kun LLVM ebligita.

Plibonigoj al SQL-lingvaj kapabloj kaj norma kongruo

PostgreSQL 12 enkondukis la kapablon pridemandi JSON-dokumentojn uzante JSON-vojesprimojn difinitajn en la SQL/JSON-normo. Tiaj demandoj povas utiligi ekzistantajn indeksajn mekanismojn por dokumentoj stokitaj en JSONB-formato por efike preni datenojn.

Oftaj tabelesprimoj, ankaŭ konataj kiel KUN-demandoj, nun povas esti aŭtomate ekzekutitaj uzante anstataŭigon en PostgreSQL 12, kiu siavice povas helpi plibonigi la agadon de multaj ekzistantaj demandoj. En la nova versio, anstataŭiga parto de KUN-demando nur povas esti efektivigita se ĝi ne estas rekursiva, havas neniujn kromefikojn kaj estas referencita nur unufoje en posta parto de la demando.

PostgreSQL 12 enkondukas subtenon por "generitaj kolumnoj". Priskribita en la SQL-normo, ĉi tiu kolumna tipo kalkulas valoron bazitan sur la enhavo de aliaj kolumnoj en la sama tabelo. En ĉi tiu versio, PostgreSQL subtenas "stokitajn generitajn kolumnojn", kie la kalkulita valoro estas stokita sur disko.

Internaciigo

PostgreSQL 12 vastigas subtenon por ICU-komparadoj permesante al uzantoj difini "ne-determinismajn komparojn" kiuj povas, ekzemple, permesi uskleksentemajn aŭ akcent-malsentemajn komparojn.

Aŭtentigo

PostgreSQL pligrandigas sian subtenon por fortaj aŭtentikigmetodoj kun pluraj plibonigoj kiuj provizas plian sekurecon kaj funkciecon. Ĉi tiu eldono enkondukas klientflankan kaj servilflankan ĉifradon por aŭtentigo per GSSAPI-interfacoj, same kiel la kapablon por PostgreSQL malkovri LDAP-servilojn kiam PostgreSQL estas kompilita kun OpenLDAP.

Aldone, PostgreSQL 12 nun subtenas plurfaktoran aŭtentikan opcion. La PostgreSQL-servilo nun povas postuli la klienton provizi validan SSL-atestilon kun la responda uzantnomo uzante clientcert=verify-full, kaj kombini ĉi tion kun aparta aŭtentikmetoda postulo (ekz. scram-sha-256).

Administrado

PostgreSQL 12 enkondukis la kapablon fari ne-blokantajn indeksajn rekonstruojn uzante la komandon REINDEX CONCURRENTLY. Ĉi tio permesas al uzantoj eviti malfunkcion de DBMS dum longaj indeksaj rekonstruoj.

Aldone, en PostgreSQL 12, vi povas ebligi aŭ malŝalti paĝajn ĉeksumojn en malŝalta aro uzante la komandon pg_checksums. Antaŭe, paĝaj kontrolsumoj, trajto kiu helpas kontroli la integrecon de datumoj stokitaj sur disko, povus nur esti ebligitaj kiam la PostgreSQL-areto estis pravigita per initdb.

fonto: linux.org.ru

Aldoni komenton