Keluaran DBMS PostgreSQL 15

Selepas setahun pembangunan, cawangan stabil baharu DBMS PostgreSQL 15 telah diterbitkan. Kemas kini untuk cawangan baharu akan dikeluarkan dalam tempoh lima tahun sehingga November 2027.

Inovasi utama:

  • Menambah sokongan untuk arahan SQL "MERGE", yang menyerupai ungkapan "INSERT ... ON CONFLICT". MERGE membolehkan anda mencipta pernyataan SQL bersyarat yang menggabungkan operasi INSERT, UPDATE dan DELETE ke dalam satu ungkapan. Sebagai contoh, menggunakan MERGE, anda boleh menggabungkan dua jadual dengan memasukkan rekod yang hilang dan mengemas kini yang sedia ada. BERGABUNG KE dalam akaun_pelanggan ca MENGGUNAKAN recent_transactions t PADA t.customer_id = ca.customer_id APABILA DIPADAKAN MAKA KEMASKINI SET baki = baki + nilai_urus niaga APABILA TIDAK DIPADAKAN MAKA Sisipkan (id_pelanggan, baki) NILAI (t.nilai_pelanggan, t.transaction_value);
  • Algoritma untuk menyusun data dalam memori dan pada cakera telah dipertingkatkan dengan ketara. Bergantung pada jenis data, ujian menunjukkan peningkatan dalam kelajuan pengisihan daripada 25% kepada 400%.
  • Fungsi tetingkap menggunakan row_number(), rank(), dense_rank() dan count() telah dipercepatkan.
  • Kemungkinan pelaksanaan pertanyaan selari dengan ungkapan "SELECT DISTINCT" telah dilaksanakan.
  • Mekanisme untuk menyambungkan jadual luar Pembungkus Data Asing (postgres_fdw) melaksanakan sokongan untuk komit tak segerak sebagai tambahan kepada keupayaan yang ditambahkan sebelum ini untuk memproses permintaan secara tak segerak ke pelayan luaran.
  • Menambah keupayaan untuk menggunakan algoritma LZ4 dan Zstandard (zstd) untuk memampatkan log transaksi WAL, yang, di bawah beberapa beban kerja, boleh meningkatkan prestasi dan menjimatkan ruang cakera secara serentak. Untuk mengurangkan masa pemulihan selepas kegagalan, sokongan untuk mendapatkan semula halaman secara proaktif yang muncul dalam log WAL telah ditambah.
  • Utiliti pg_basebackup telah menambah sokongan untuk pemampatan sisi pelayan bagi fail sandaran menggunakan kaedah gzip, LZ4 atau zstd. Anda boleh menggunakan modul anda sendiri untuk mengarkib, membolehkan anda melakukannya tanpa perlu menjalankan arahan shell.
  • Satu siri fungsi baharu telah ditambah untuk memproses rentetan menggunakan ungkapan biasa: regexp_count(), regexp_instr(), regexp_like() dan regexp_substr().
  • Keupayaan untuk mengagregat jenis berbilang julat (β€œberbilang julat”) telah ditambahkan pada fungsi range_agg().
  • Mod security_invoker ditambah, yang membolehkan anda membuat paparan yang dijalankan sebagai pengguna yang memanggil dan bukannya pencipta paparan.
  • Untuk replikasi logik, sokongan telah dilaksanakan untuk menapis baris dan menentukan senarai lajur, membenarkan pada pihak penghantar untuk memilih subset data daripada jadual untuk replikasi. Di samping itu, versi baharu memudahkan pengurusan konflik, contohnya, kini boleh melangkau transaksi bercanggah dan melumpuhkan langganan secara automatik apabila ralat dikesan. Replikasi logik membenarkan penggunaan komit dua fasa (2PC).
  • Format log baharu telah ditambah - jsonlog, yang menyimpan maklumat dalam bentuk berstruktur menggunakan format JSON.
  • Pentadbir mempunyai keupayaan untuk mewakilkan hak individu kepada pengguna untuk menukar parameter konfigurasi pelayan PostgreSQL tertentu.
  • Utiliti psql telah menambah sokongan untuk mencari maklumat tentang tetapan (pg_settings) menggunakan arahan "\dconfig".
  • Penggunaan memori bersama dipastikan untuk mengumpul statistik tentang operasi pelayan, yang memungkinkan untuk menyingkirkan proses pengumpulan statistik yang berasingan dan menetapkan semula keadaan secara berkala ke cakera.
  • Keupayaan untuk menggunakan tempat ICU lalai "Pengumpulan ICU" telah disediakan; sebelum ini, hanya tempat libc boleh digunakan sebagai tempat lalai.
  • Sambungan terbina dalam pg_walinspect telah dicadangkan, yang membolehkan anda memeriksa kandungan fail dengan log WAL menggunakan pertanyaan SQL.
  • Untuk skema awam, semua pengguna, kecuali pemilik pangkalan data, mempunyai kuasa mereka untuk melaksanakan perintah CREATE dibatalkan.
  • Sokongan untuk Python 2 telah dialih keluar dalam PL/Python. Mod sandaran eksklusif yang usang telah dialih keluar.

Penambahan: Dari 19:00 hingga 20:00 (MSK) akan ada webinar membincangkan perubahan dalam versi baharu bersama Pavel Luzanov (Postgres Professional). Bagi mereka yang tidak dapat menyertai siaran, rakaman laporan Jun Pavel "PostgreSQL 15: MERGE dan banyak lagi" di PGConf.Russia dibuka.

Sumber: opennet.ru

Tambah komen