Rilis DBMS PostgreSQL 12

Setelah satu tahun pembangunan diterbitkan cabang stabil baru dari DBMS PostgreSQL 12 Pembaruan untuk cabang baru akan keluar selama lima tahun sampai dengan November 2024.

Utama inovasi:

  • Menambahkan dukungan untuk "kolom yang dihasilkan", yang nilainya dihitung berdasarkan ekspresi yang mencakup nilai kolom lain dalam tabel yang sama (mirip dengan tampilan, tetapi untuk kolom individual). Kolom yang dihasilkan dapat terdiri dari dua jenis - disimpan dan virtual. Dalam kasus pertama, nilai dihitung pada saat data ditambahkan atau diubah, dan dalam kasus kedua, nilai dihitung pada setiap pembacaan berdasarkan status kolom lainnya saat ini. Saat ini, PostgreSQL hanya mendukung kolom tersimpan yang dihasilkan;
  • Menambahkan kemampuan untuk mengkueri data dari dokumen JSON menggunakan Ekspresi jalan, mengingatkan XPath dan didefinisikan dalam standar SQL/JSON. Mekanisme pengindeksan yang ada digunakan untuk meningkatkan efisiensi pemrosesan ekspresi tersebut untuk dokumen yang disimpan dalam format JSONB;
  • Diaktifkan secara default adalah penggunaan kompiler JIT (Just-in-Time) berdasarkan pengembangan LLVM untuk mempercepat eksekusi beberapa ekspresi selama pemrosesan kueri SQL. Misalnya, JIT digunakan untuk mempercepat eksekusi ekspresi di dalam blok WHERE, daftar target, ekspresi agregat, dan beberapa operasi internal;
  • Kinerja pengindeksan telah meningkat secara signifikan. Indeks B-tree dioptimalkan untuk bekerja di lingkungan di mana indeks sering berubah - pengujian TPC-C menunjukkan peningkatan kinerja secara keseluruhan dan pengurangan rata-rata konsumsi ruang disk sebesar 40%. Mengurangi overhead saat membuat write-ahead log (WAL) untuk tipe indeks GiST, GIN, dan SP-GiST. Untuk GiST, kemampuan untuk membuat indeks pembungkus (melalui ekspresi INCLUDE) yang menyertakan kolom tambahan telah ditambahkan. Dalam operasi BUAT STATISTIK Memberikan dukungan untuk statistik Nilai Paling Umum (MCV) untuk menghasilkan rencana kueri yang lebih optimal saat menggunakan kolom yang tidak terdistribusi secara merata;
  • Implementasi partisi dioptimalkan untuk kueri yang menjangkau tabel dengan ribuan partisi, namun terbatas pada pemilihan subset data terbatas. Performa penambahan data ke tabel yang dipartisi menggunakan operasi INSERT dan COPY telah ditingkatkan, dan juga dimungkinkan untuk menambahkan bagian baru melalui "ALTER TABLE ATTACH PARTITION" tanpa memblokir eksekusi kueri;
  • Menambahkan dukungan untuk perluasan sebaris otomatis ekspresi tabel umum (Ekspresi Tabel Umum, CTE) yang mengizinkan penggunaan kumpulan hasil bernama sementara yang ditentukan menggunakan pernyataan WITH. Penerapan inline dapat meningkatkan kinerja sebagian besar kueri, namun saat ini hanya digunakan untuk CTE non-rekursif;
  • Ditambahkan dukungan non-deterministik properti lokal "Collation", yang memungkinkan Anda menetapkan aturan pengurutan dan metode pencocokan dengan mempertimbangkan arti karakter (misalnya, saat mengurutkan nilai digital, adanya tanda minus dan titik di depan angka dan jenis yang berbeda ejaan diperhitungkan, dan ketika membandingkan, huruf besar-kecil dan keberadaan tanda aksen tidak diperhitungkan) ;
  • Menambahkan dukungan untuk otentikasi klien multi-faktor, di mana di pg_hba.conf Anda dapat menggabungkan otentikasi sertifikat SSL (clientcert=verify-full) dengan metode otentikasi tambahan seperti scram-sha-256 untuk otentikasi;
  • Menambahkan dukungan untuk enkripsi saluran komunikasi saat mengautentikasi melalui GSSAPI, baik di sisi klien maupun di sisi server;
  • Menambahkan dukungan untuk menentukan server LDAP berdasarkan catatan β€œDNS SRV” jika PostgreSQL dibangun dengan OpenLDAP;
  • Operasi tambahan "REINDEX SECARA BERSAMAANΒ» untuk membangun kembali indeks tanpa memblokir operasi penulisan ke indeks;
  • Perintah tambahan pg_checksums, yang memungkinkan Anda mengaktifkan atau menonaktifkan pemeriksaan checksum halaman data untuk database yang ada (sebelumnya operasi ini hanya didukung selama inisialisasi database);
  • Memberikan keluaran indikator kemajuan untuk operasi CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL dan pg_checksums;
  • Menambahkan perintah "BUAT METODE AKSESΒ» untuk menghubungkan penangan metode penyimpanan tabel baru yang dioptimalkan untuk berbagai tugas spesifik. Saat ini satu-satunya metode akses tabel bawaan adalah "heap";
  • File konfigurasi recovery.conf telah digabungkan dengan postgresql.conf. Sebagai indikator transisi menuju keadaan pemulihan setelah kegagalan, sekarang harus gunakan file recovery.signal dan standby.signal.

Sumber: opennet.ru

Tambah komentar