Versió de PostgreSQL 12

L'equip de PostgreSQL ha anunciat el llançament de PostgreSQL 12, l'última versió del sistema de gestió de bases de dades relacionals de codi obert.
PostgreSQL 12 ha millorat significativament el rendiment de les consultes, especialment quan es treballa amb grans volums de dades, i també ha optimitzat l'ús de l'espai en disc en general.

Les noves característiques inclouen:

  • implementació del llenguatge de consulta JSON Path (la part més important de l'estàndard SQL/JSON);
  • optimització de l'execució d'expressions de taula comunes (WITH);
  • suport per a columnes generades

La comunitat també continua treballant en l'extensibilitat i la fiabilitat de PostgreSQL, desenvolupant suport per a la internacionalització, capacitats d'autenticació i proporcionant maneres més fàcils d'administrar el sistema.

Aquesta versió inclou la implementació d'una interfície per a motors d'emmagatzematge connectables, que ara permet als desenvolupadors crear els seus propis mètodes d'emmagatzematge de dades.

Millores de rendiment

PostgreSQL 12 inclou millores significatives de rendiment i manteniment per als sistemes d'indexació i particions.

Els índexs B-tree, el tipus d'indexació estàndard a PostgreSQL, s'han optimitzat a la versió 12 per a càrregues de treball que impliquen modificacions freqüents d'índex. L'ús del punt de referència TPC-C per a PostgreSQL 12 va demostrar una reducció mitjana del 40% en l'ús d'espai i un augment global del rendiment de les consultes.

Les consultes sobre taules particionades han rebut millores notables, especialment per a taules que consisteixen en milers de particions que requereixen treballar només amb parts limitades de les matrius de dades. S'ha millorat el rendiment d'afegir dades a taules particionades mitjançant INSERT i COPY, així com la possibilitat d'adjuntar una nova partició sense bloquejar les consultes.

PostgreSQL 12 ha fet millores addicionals a la indexació que afecten el rendiment general, com ara:

  • sobrecàrrega reduïda en generar WAL per als tipus d'índex GiST, GIN i SP-GiST;
  • la capacitat de crear els anomenats índexs de cobertura (clàusula INCLUDE) als índexs GiST;
  • la capacitat de realitzar consultes de "veí més proper" (cerca k-NN) mitjançant l'operador de distància (<->) i utilitzant índexs SP-GiST;
  • suport per recopilar estadístiques de valors més comuns (MCV) mitjançant CREATE STATISTICS, que ajuda a obtenir millors plans de consulta quan s'utilitzen columnes els valors de les quals estan distribuïts de manera desigual.

La compilació JIT mitjançant LLVM, introduïda a PostgreSQL 11, ara està habilitada per defecte. La compilació JIT millora el rendiment quan es treballa amb expressions en clàusules WHERE, llistes de destinació, agregats i algunes operacions internes. Està disponible si heu compilat PostgreSQL amb LLVM o si feu servir un paquet PostgreSQL que es va crear amb LLVM habilitat.

Millores a les capacitats del llenguatge SQL i la compatibilitat estàndard

PostgreSQL 12 va introduir la possibilitat de consultar documents JSON mitjançant expressions de camí JSON definides a l'estàndard SQL/JSON. Aquestes consultes poden aprofitar els mecanismes d'indexació existents per als documents emmagatzemats en format JSONB per recuperar dades de manera eficient.

Les expressions de taula habituals, també conegudes com a consultes WITH, ara es poden executar automàticament mitjançant la substitució a PostgreSQL 12, que al seu torn pot ajudar a millorar el rendiment de moltes consultes existents. A la nova versió, una part de substitució d'una consulta WITH només es pot executar si no és recursiva, no té efectes secundaris i només es fa referència una vegada en una part posterior de la consulta.

PostgreSQL 12 introdueix suport per a "columnes generades". Descrit a l'estàndard SQL, aquest tipus de columna calcula un valor en funció del contingut d'altres columnes de la mateixa taula. En aquesta versió, PostgreSQL admet "columnes generades emmagatzemades", on el valor calculat s'emmagatzema al disc.

Internacionalització

PostgreSQL 12 amplia el suport per a les col·lacions de la UCI permetent als usuaris definir "intercalaments no deterministes" que poden, per exemple, permetre comparacions que no distingeixen entre majúscules i minúscules o l'accent.

Autenticació

PostgreSQL amplia el seu suport per a mètodes d'autenticació forts amb diverses millores que proporcionen seguretat i funcionalitat addicionals. Aquesta versió introdueix el xifratge del costat del client i del servidor per a l'autenticació mitjançant interfícies GSSAPI, així com la capacitat de PostgreSQL per descobrir servidors LDAP quan PostgreSQL es compila amb OpenLDAP.

A més, PostgreSQL 12 ara admet una opció d'autenticació multifactor. El servidor PostgreSQL ara pot requerir que el client proporcioni un certificat SSL vàlid amb el nom d'usuari corresponent mitjançant clientcert=verify-full i combinar-ho amb un requisit de mètode d'autenticació separat (per exemple, scram-sha-256).

Administració

PostgreSQL 12 va introduir la possibilitat de realitzar reconstruccions d'índex sense bloqueig mitjançant l'ordre REINDEX CONCURRENTLY. Això permet als usuaris evitar temps d'inactivitat del SGBD durant reconstruccions llargues de l'índex.

A més, a PostgreSQL 12, podeu habilitar o desactivar les sumes de comprovació de la pàgina en un clúster d'apagada mitjançant l'ordre pg_checksums. Anteriorment, les sumes de comprovació de la pàgina, una característica que ajuda a verificar la integritat de les dades emmagatzemades al disc, només es podien habilitar quan el clúster PostgreSQL s'inicializava mitjançant initdb.

Font: linux.org.ru

Afegeix comentari