Vydání PostgreSQL 12

Tým PostgreSQL oznámil vydání PostgreSQL 12, nejnovější verze open source systému pro správu relačních databází.
PostgreSQL 12 výrazně zlepšil výkon dotazů – zejména při práci s velkými objemy dat a také obecně optimalizoval využití místa na disku.

Mezi nové funkce patří:

  • implementace dotazovacího jazyka JSON Path (nejdůležitější část standardu SQL/JSON);
  • optimalizace provádění běžných tabulkových výrazů (WITH);
  • podpora pro generované sloupce

Komunita také pokračuje v práci na rozšiřitelnosti a spolehlivosti PostgreSQL, vyvíjí podporu pro internacionalizaci, autentizační schopnosti a poskytuje jednodušší způsoby správy systému.

Tato verze obsahuje implementaci rozhraní pro zásuvné úložné stroje, které nyní umožňuje vývojářům vytvářet vlastní metody ukládání dat.

Vylepšení výkonu

PostgreSQL 12 obsahuje významná vylepšení výkonu a údržby pro systémy indexování a dělení.

Indexy B-stromu, standardní typ indexování v PostgreSQL, byly ve verzi 12 optimalizovány pro pracovní zátěže, které zahrnují časté úpravy indexů. Použití benchmarku TPC-C pro PostgreSQL 12 prokázalo průměrné 40% snížení využití prostoru a celkové zvýšení výkonu dotazů.

Dotazy na dělené tabulky se dočkaly znatelných vylepšení, zejména u tabulek skládajících se z tisíců oddílů, které vyžadují práci pouze s omezenými částmi datových polí. Byl vylepšen výkon přidávání dat do dělených tabulek pomocí INSERT a COPY a také schopnost připojit nový oddíl bez blokování dotazů.

PostgreSQL 12 provedl další vylepšení indexování, která ovlivňují celkový výkon, včetně:

  • snížení režie při generování WAL pro typy indexů GiST, GIN a SP-GiST;
  • schopnost vytvářet tzv. krycí indexy (klauzule INCLUDE) na GiST indexech;
  • schopnost provádět dotazy „nejbližšího souseda“ (hledání k-NN) pomocí operátoru vzdálenosti (<->) a pomocí indexů SP-GiST;
  • podpora shromažďování statistik nejběžnějších hodnot (MCV) pomocí CREATE STATISTICS, což pomáhá získat lepší plány dotazů při použití sloupců, jejichž hodnoty jsou nerovnoměrně rozděleny.

Kompilace JIT pomocí LLVM, představená v PostgreSQL 11, je nyní ve výchozím nastavení povolena. Kompilace JIT zlepšuje výkon při práci s výrazy v klauzulích WHERE, cílových seznamech, agregátech a některých interních operacích. Je k dispozici, pokud jste zkompilovali PostgreSQL s LLVM nebo používáte balíček PostgreSQL, který byl vytvořen s povoleným LLVM.

Vylepšení možností jazyka SQL a standardní kompatibility

PostgreSQL 12 zavedl možnost dotazovat se na dokumenty JSON pomocí výrazů cesty JSON definovaných ve standardu SQL/JSON. Takové dotazy mohou využít existující mechanismy indexování pro dokumenty uložené ve formátu JSONB k efektivnímu načítání dat.

Běžné tabulkové výrazy, známé také jako dotazy WITH, lze nyní automaticky spouštět pomocí substituce v PostgreSQL 12, což zase může pomoci zlepšit výkon mnoha existujících dotazů. V nové verzi lze substituční část dotazu WITH provést pouze v případě, že není rekurzivní, nemá žádné vedlejší účinky a je odkazováno pouze jednou v následující části dotazu.

PostgreSQL 12 zavádí podporu pro „generované sloupce“. Tento typ sloupce, popsaný ve standardu SQL, vypočítává hodnotu na základě obsahu jiných sloupců ve stejné tabulce. PostgreSQL v této verzi podporuje „uložené vygenerované sloupce“, kde se vypočítaná hodnota ukládá na disk.

Internacionalizace

PostgreSQL 12 rozšiřuje podporu pro porovnávání na ICU tím, že uživatelům umožňuje definovat „nedeterministické porovnávání“, které například umožňuje porovnávání bez rozlišení velkých a malých písmen nebo zvýraznění.

Ověřování

PostgreSQL rozšiřuje svou podporu pro silné metody autentizace o několik vylepšení, která poskytují další zabezpečení a funkčnost. Tato verze zavádí šifrování na straně klienta a na straně serveru pro ověřování přes rozhraní GSSAPI a také schopnost PostgreSQL zjišťovat LDAP servery, když je PostgreSQL kompilován s OpenLDAP.

PostgreSQL 12 nyní navíc podporuje možnost vícefaktorové autentizace. Server PostgreSQL nyní může vyžadovat, aby klient poskytl platný certifikát SSL s odpovídajícím uživatelským jménem pomocí clientcert=verify-full, a kombinovat to s požadavkem na samostatnou metodu ověřování (např. scram-sha-256).

podávání

PostgreSQL 12 zavedl možnost provádět neblokující přestavby indexů pomocí příkazu REINDEX CONCURRENTLY. To uživatelům umožňuje vyhnout se prostojům DBMS během zdlouhavého přestavování indexu.

Navíc v PostgreSQL 12 můžete povolit nebo zakázat kontrolní součty stránek v clusteru pro vypnutí pomocí příkazu pg_checksums. Dříve bylo možné kontrolní součty stránek, což je funkce, která pomáhá ověřit integritu dat uložených na disku, povolit pouze tehdy, když byl cluster PostgreSQL inicializován pomocí initdb.

Zdroj: linux.org.ru

Přidat komentář