Rilaxx ta' PostgreSQL 14 DBMS

Wara sena ta 'żvilupp, ġiet ippubblikata fergħa stabbli ġdida tad-DBMS PostgreSQL 14. Aġġornamenti għall-fergħa l-ġdida se jiġu rilaxxati fuq ħames snin sa Novembru 2026.

Innovazzjonijiet ewlenin:

  • Appoġġ miżjud għall-aċċess ta' data JSON bl-użu ta' espressjonijiet simili għal array: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"medju"';

    Sintassi simili hija implimentata għad-dejta taċ-ċavetta/valur ipprovduta mit-tip hstore. Din is-sintassi kienet inizjalment implimentata bl-użu ta' qafas universali, li fil-futur jista' jintuża għal tipi oħra. Eżempju għat-tip hstore: INSERT INTO mytable VALUES ('a=>b, c=>d'); AGĦŻEL h['a'] MINN mytable; UPDATE mytable SET h['c'] = 'ġdid';

  • Il-familja ta 'tipi għad-definizzjoni ta' firxiet ġiet estiża b'tipi ġodda "multirange", li jippermettulek tispeċifika listi ordnati ta 'meded ta' valuri li ma jikkoinċidux. Minbarra kull tip ta 'firxa eżistenti, it-tip multirange tagħha stess huwa propost, pereżempju, it-tip "int4range" jikkorrispondi għal "int4multirange", u t-tip "daterange" jikkorrispondi għal "datemultirange". L-użu ta 'tipi ġodda jissimplifika d-disinn ta' mistoqsijiet li jimmanipulaw sekwenzi kumplessi ta 'firxiet. AGĦŻEL '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • Saru ottimizzazzjonijiet biex itejbu l-prestazzjoni ta 'sistemi ta' tagħbija għolja li jipproċessaw numru kbir ta 'konnessjonijiet. F'xi testijiet, hija osservata żieda doppja fil-prestazzjoni.
  • L-effiċjenza tal-indiċi tas-siġar B tjiebet u ġiet solvuta l-problema tat-tkabbir tal-indiċi meta t-tabelli jiġu aġġornati ta' spiss.
  • Appoġġ miżjud għall-mod ta 'trażmissjoni tal-pipeline ta' talbiet min-naħa tal-klijent (implimentat fil-livell libpq), li jippermettilek tħaffef b'mod sinifikanti xenarji tad-database assoċjati mat-twettiq ta 'numru kbir ta' operazzjonijiet ta 'kitba żgħar (INSERT/UPDATE/DELETE) billi tibgħat il- talba li jmiss mingħajr ma tistenna r-riżultat ta 'qabel. Il-mod jgħin ukoll biex iħaffef ix-xogħol fuq konnessjonijiet b'dewmien twil fit-twassil tal-pakketti.
  • Kapaċitajiet imtejba għal konfigurazzjonijiet distribwiti li jinvolvu servers multipli PostgreSQL. Fl-implimentazzjoni ta 'replikazzjoni loġika, issa jsir possibbli li jintbagħtu transazzjonijiet fil-modalità streaming li jkunu fil-proċess ta' eżekuzzjoni, li jistgħu jtejbu b'mod sinifikanti l-prestazzjoni tar-replikazzjoni ta 'tranżazzjonijiet kbar. Barra minn hekk, id-dekodifikazzjoni loġika tad-dejta riċevuta matul ir-replikazzjoni loġika ġiet ottimizzata.
  • Il-mekkaniżmu għall-konnessjoni ta 'tabelli esterni Foreign Data Wrapper (postgres_fdw) żied appoġġ għall-ipproċessar parallel ta' mistoqsijiet, li bħalissa huwa applikabbli biss meta tikkonnettja ma 'servers PostgreSQL oħra. postgres_fdw iżid ukoll appoġġ għaż-żieda ta 'dejta ma' tabelli esterni fil-modalità tal-lott u l-abbiltà li timporta tabelli diviżorji billi tispeċifika d-direttiva "IMPORTAZZJONI BARRANIJA SCHEMA".
  • Saru ottimizzazzjonijiet għall-implimentazzjoni tal-operazzjoni VACUUM (ġbir taż-żibel u ppakkjar tal-ħażna tad-disk). Modalità ta' tindif ta' emerġenza ġiet miżjuda li taqbeż operazzjonijiet ta' tindif mhux essenzjali jekk jinħolqu kundizzjonijiet ta' wraparound tal-ID tat-tranżazzjoni. Overhead imnaqqas meta tipproċessa indiċi fil-format B-Tree. L-eżekuzzjoni tal-operazzjoni "ANALYZE", li tiġbor statistika dwar l-operat tad-database, ġiet aċċellerata b'mod sinifikanti.
  • Miżjud il-kapaċità li jiġi kkonfigurat il-metodu ta 'kompressjoni użat fis-sistema TOAST, li hija responsabbli għall-ħażna ta' data kbira, bħal blokki ta 'test jew informazzjoni ġeometrika. Minbarra l-metodu ta 'kompressjoni pglz, TOAST issa jista' juża l-algoritmu LZ4.
  • L-għodod għall-monitoraġġ tal-operat tad-DBMS ġew estiżi. Fehmiet miżjuda biex jittraċċaw il-progress tal-kmandi tal-COPY (pg_stat_progress_copy), statistika dwar slots ta' replikazzjoni (pg_stat_replication_slots) u attività relatata mar-reġistru tat-tranżazzjonijiet WAL (pg_stat_wal). Il-funzjoni compute_query_id ġiet miżjuda, li tippermetti li diversi sottosistemi, bħal pg_stat_activity u EXPLAIN VERBOSE, isegwu t-talbiet billi jassenjaw identifikatur uniku għal kull talba.
  • Ġew miżjuda ottimizzazzjonijiet mal-pjanifikatur tal-mistoqsijiet biex itejbu l-ipproċessar parallel tal-mistoqsijiet u jtejbu l-prestazzjoni ta 'eżekuzzjoni simultanja ta' operazzjonijiet ta 'skannjar ta' rekords sekwenzjali, eżekuzzjoni parallela ta 'mistoqsijiet f'PL/pgSQL bl-użu tal-kmand "RETURN QUERY", u eżekuzzjoni parallela ta' mistoqsijiet f'" REFRESH VIEW MATERIALIZED”. Biex tittejjeb il-prestazzjoni tal-għaqdiet ċikliċi nested (join), ġie implimentat appoġġ għal caching addizzjonali.
  • Statistika avvanzata issa tista 'tintuża biex tottimizza l-espressjonijiet, u l-għażla inkrementali issa tista' tintuża biex tottimizza l-funzjonijiet tat-twieqi.
  • Proċeduri maħżuna li jippermettulek timmaniġġja tranżazzjonijiet fi blokki ta 'kodiċi issa jappoġġaw id-definizzjoni tad-dejta tar-ritorn bl-użu ta' parametri "OUT".
  • Miżjud il-funzjoni date_bin biex iqarreb il-valuri tat-timestamp skont intervall speċifikat. SELECT date_bin('15-il minuta', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Miżjuda espressjonijiet SEARCH u CYCLE definiti fl-istandard SQL biex jagħmluha aktar faċli li jiġu organizzati u identifikati ċikli f'Espressjonijiet Komuni Tabella (CTE) rikorsivi. WITH search_tree(id, link, data) RIKURSIVI KIF ( SELECT t.id, t.link, t.data FROM tree t UNION KOLLHA SELECT t.id, t.link, t.data FROM tree t, search_tree st FEJN t. id = st.link ) IL-PROFOND TA' FITXEX L-EWWEL MILL id SET ordercol SELECT * FROM search_tree ORDER BY ordercol;
  • Fl-utilità psql, l-awtokompletazzjoni ta 'kmandi bit-tabs tjieb, il-kapaċità li jintwerew argumenti tal-funzjoni ġiet miżjuda mal-kmand "\df", u l-istatistika murija ġiet estiża għall-kmand "\dX".
  • Huwa possibbli li jiġu assenjati privileġġi għall-qari biss jew għall-kitba biss lill-utenti. Il-privileġġi jistgħu jiġu stabbiliti fuq tabelli, fehmiet u skemi individwali bl-użu tar-rwoli pg_read_all_data u pg_write_all_data predefiniti. GĦOTJA pg_read_all_data LILL-utent1;
  • Installazzjonijiet ġodda default għall-awtentikazzjoni password billi jużaw SCRAM-SHA-256 minflok md5 (il-parametru "password_encryption" meta jiġġenera postgresql.conf issa huwa ssettjat għal "scram-sha-256").

Sors: opennet.ru

Żid kumment