PostgreSQL 14 release

Sawise setaun pembangunan, cabang stabil anyar PostgreSQL 14 DBMS wis diterbitake. Pembaruan kanggo cabang anyar bakal dirilis sajrone limang taun nganti November 2026.

Inovasi utama:

  • Dhukungan tambahan kanggo ngakses data JSON nggunakake ekspresi kaya array: SELECT ('{ "postgres": {"release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE rincian['atribut']['ukuran'] = '"medium"';

    Sintaks sing padha ditindakake kanggo data kunci / nilai sing diwenehake dening jinis hstore. Sintaks iki wiwitane dileksanakake nggunakake kerangka universal, sing ing mangsa ngarep bisa digunakake kanggo jinis liyane. Conto kanggo jinis hstore: INSERT INTO mytable VALUES ('a => b, c => d'); PILIH h['a'] Saka mytable; UPDATE mytable SET h['c'] = 'anyar';

  • Kulawarga jinis kanggo nemtokake kisaran wis ditambahi karo jinis "multirange" anyar, sing ngidini sampeyan nemtokake dhaptar urutan nilai sing ora tumpang tindih. Saliyane saben jinis sawetara sing ana, jinis multirange dhewe diusulake, contone, jinis "int4range" cocog karo "int4multirange", lan jinis "daterange" cocog karo "datemultirange". Panggunaan jinis anyar nyederhanakake desain pitakon sing manipulasi urutan kompleks rentang. PILIH '{[3,7), [8,9)}'::int4multirange; PILIH nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • Optimizations wis digawe kanggo nambah kinerja sistem dhuwur-muat ngolah nomer akeh sambungan. Ing sawetara tes, peningkatan kinerja kaping pindho diamati.
  • Efisiensi indeks B-wit wis apik lan masalah karo wutah indeks nalika tabel asring dianyari wis ditanggulangi.
  • Dhukungan ditambahake kanggo mode transmisi panjalukan ing sisih klien (dilaksanakake ing level libpq), sing ngidini sampeyan nyepetake skenario database sing ana gandhengane karo nindakake operasi nulis cilik (INSERT / UPDATE / DELETE) kanthi ngirim panjalukan sabanjure tanpa ngenteni asil saka sing sadurunge. Mode uga mbantu nyepetake sambungan karo wektu tundha pangiriman paket sing dawa.
  • Kapabilitas sing ditingkatake kanggo konfigurasi sing disebarake nglibatake sawetara server PostgreSQL. Ing implementasine replikasi logis, saiki bisa ngirim transaksi mode streaming sing ana ing proses eksekusi, sing bisa ningkatake kinerja replikasi transaksi gedhe kanthi signifikan. Kajaba iku, dekoding logis data sing ditampa sajrone replikasi logis wis dioptimalake.
  • Mekanisme kanggo nyambungake tabel njaba Foreign Data Wrapper (postgres_fdw) wis ditambahakΓ© support kanggo Processing query podo, kang saiki mung ditrapake nalika nyambungake menyang server PostgreSQL liyane. postgres_fdw uga nambah dhukungan kanggo nambah data menyang tabel eksternal ing mode kumpulan lan kemampuan kanggo ngimpor tabel partisi kanthi nemtokake arahan "IMPORT FOREIGN SCHEMA".
  • Optimizations wis digawe kanggo implementasine saka operasi VACUUM (koleksi sampah lan packaging panyimpenan disk). Mode resik darurat wis ditambahake sing ngliwati operasi pembersihan sing ora penting yen kahanan bungkus ID transaksi digawe. Suda overhead nalika ngolah indeks ing format B-Tree. Eksekusi operasi "ANALYZE", sing ngumpulake statistik babagan operasi database, wis cepet banget.
  • Nambahake kemampuan kanggo ngatur cara kompresi sing digunakake ing sistem TOAST, sing tanggung jawab kanggo nyimpen data gedhe, kayata blok teks utawa informasi geometris. Saliyane metode kompresi pglz, TOAST saiki bisa nggunakake algoritma LZ4.
  • Piranti kanggo ngawasi operasi DBMS wis ditambahi. Added views kanggo trek kemajuan printah COPY (pg_stat_progress_copy), statistik bab replikasi slot (pg_stat_replication_slots) lan aktivitas related kanggo log transaksi WAL (pg_stat_wal). Fungsi compute_query_id wis ditambahake, sing ngidini macem-macem subsistem, kayata pg_stat_activity lan EXPLAIN VERBOSE, kanggo nglacak panjalukan kanthi menehi pengenal unik kanggo saben panjalukan.
  • Optimasi wis ditambahake menyang perencana pitakon kanggo nambah pangolahan paralel pitakon lan ningkatake kinerja eksekusi simultan operasi pindai rekaman urutan, eksekusi paralel pitakon ing PL/pgSQL nggunakake printah "RETURN QUERY", lan eksekusi paralel pitakon ing " REFRESH MATERIALIZED VIEW". Kanggo nambah kinerja gabungan nested siklik (gabung), dhukungan kanggo caching tambahan wis dileksanakake.
  • Statistik lanjut saiki bisa digunakake kanggo ngoptimalake ekspresi, lan ngurutake tambahan saiki bisa digunakake kanggo ngoptimalake fungsi jendhela.
  • Prosedur sing disimpen sing ngidini sampeyan ngatur transaksi ing blok kode saiki ndhukung nemtokake data bali nggunakake parameter "OUT".
  • Nambahake fungsi date_bin kanggo babak nilai timestamp miturut interval tartamtu. PILIH date_bin('15 menit', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Nambahake ekspresi SEARCH lan CYCLE sing ditetepake ing standar SQL kanggo nggampangake pesenan lan ngenali siklus ing Ekspresi Tabel Umum rekursif (CTE). KARO RECURSIVE search_tree(id, link, data) AS ( SELECT t.id, t.link, t.data FROM tree t UNION ALL SELECT t.id, t.link, t.data FROM tree t, search_tree st WHERE t. id = st.link ) KETEMU DULUR BY id SET ordercol SELECT * FROM search_tree ORDER BY ordercol;
  • Ing utilitas psql, autocompletion printah kanthi tab wis apik, kemampuan kanggo nampilake argumen fungsi wis ditambahake menyang printah "\df", lan statistik sing ditampilake wis ditambahake menyang printah "\dX".
  • Sampeyan bisa menehi hak istimewa mung diwaca utawa mung nulis kanggo pangguna. Hak istimewa bisa disetel ing tabel individu, tampilan, lan skema nggunakake pg_read_all_data lan pg_write_all_data peran sing wis ditemtokake. GRANT pg_read_all_data TO user1;
  • Instalasi anyar standar kanggo otentikasi sandi nggunakake SCRAM-SHA-256 tinimbang md5 (parameter "password_encryption" nalika ngasilake postgresql.conf saiki disetel dadi 'scram-sha-256').

Source: opennet.ru

Add a comment