Rilis PostgreSQL 12

Tim PostgreSQL telah mengumumkan peluncuran PostgreSQL 12, versi terbaru dari sistem manajemen basis data relasional open source.
PostgreSQL 12 telah meningkatkan kinerja kueri secara signifikan - terutama saat bekerja dengan data dalam jumlah besar, dan juga mengoptimalkan penggunaan ruang disk secara umum.

Fitur baru meliputi:

  • implementasi bahasa kueri JSON Path (bagian terpenting dari standar SQL/JSON);
  • optimalisasi eksekusi ekspresi tabel umum (DENGAN);
  • dukungan untuk kolom yang dihasilkan

Komunitas juga terus berupaya untuk memperluas dan keandalan PostgreSQL, mengembangkan dukungan untuk internasionalisasi, kemampuan otentikasi, dan menyediakan cara yang lebih mudah untuk mengelola sistem.

Rilis ini mencakup penerapan antarmuka untuk mesin penyimpanan pluggable, yang kini memungkinkan pengembang membuat metode penyimpanan data mereka sendiri.

Peningkatan kinerja

PostgreSQL 12 mencakup peningkatan kinerja dan pemeliharaan yang signifikan untuk sistem pengindeksan dan partisi.

Indeks B-tree, jenis pengindeksan standar di PostgreSQL, telah dioptimalkan di versi 12 untuk beban kerja yang sering melibatkan modifikasi indeks. Penggunaan tolok ukur TPC-C untuk PostgreSQL 12 menunjukkan rata-rata pengurangan penggunaan ruang sebesar 40% dan peningkatan kinerja kueri secara keseluruhan.

Kueri terhadap tabel yang dipartisi telah mengalami peningkatan yang nyata, terutama untuk tabel yang terdiri dari ribuan partisi yang memerlukan pengerjaan hanya dengan bagian array data yang terbatas. Performa penambahan data ke tabel yang dipartisi menggunakan INSERT dan COPY telah ditingkatkan, serta kemampuan untuk melampirkan partisi baru tanpa memblokir kueri.

PostgreSQL 12 telah melakukan perbaikan tambahan pada pengindeksan yang berdampak pada kinerja secara keseluruhan, termasuk:

  • pengurangan overhead saat menghasilkan WAL untuk tipe indeks GiST, GIN dan SP-GiST;
  • kemampuan untuk membuat apa yang disebut indeks penutup (klausa INCLUDE) pada indeks GiST;
  • kemampuan untuk melakukan kueri “tetangga terdekat” (pencarian k-NN) menggunakan operator jarak (<->) dan menggunakan indeks SP-GiST;
  • dukungan untuk mengumpulkan statistik nilai paling umum (MCV) menggunakan CREATE STATISTICS, yang membantu mendapatkan rencana kueri yang lebih baik saat menggunakan kolom yang nilainya tidak terdistribusi secara merata.

Kompilasi JIT menggunakan LLVM, yang diperkenalkan di PostgreSQL 11, kini diaktifkan secara default. Kompilasi JIT meningkatkan kinerja saat bekerja dengan ekspresi dalam klausa WHERE, daftar target, agregat, dan beberapa operasi internal. Ini tersedia jika Anda telah mengkompilasi PostgreSQL dengan LLVM atau menggunakan paket PostgreSQL yang dibuat dengan LLVM yang diaktifkan.

Peningkatan kemampuan bahasa SQL dan kompatibilitas standar

PostgreSQL 12 memperkenalkan kemampuan untuk menanyakan dokumen JSON menggunakan ekspresi jalur JSON yang ditentukan dalam standar SQL/JSON. Kueri semacam itu dapat memanfaatkan mekanisme pengindeksan yang ada untuk dokumen yang disimpan dalam format JSONB guna mengambil data secara efisien.

Ekspresi tabel umum, juga dikenal sebagai kueri WITH, kini dapat dieksekusi secara otomatis menggunakan substitusi di PostgreSQL 12, yang pada gilirannya dapat membantu meningkatkan kinerja banyak kueri yang ada. Dalam versi baru, bagian substitusi dari kueri WITH hanya dapat dijalankan jika tidak bersifat rekursif, tidak memiliki efek samping, dan hanya direferensikan sekali pada bagian kueri berikutnya.

PostgreSQL 12 memperkenalkan dukungan untuk "kolom yang dihasilkan". Dijelaskan dalam standar SQL, tipe kolom ini menghitung nilai berdasarkan konten kolom lain dalam tabel yang sama. Dalam versi ini, PostgreSQL mendukung "kolom tersimpan yang dihasilkan", di mana nilai terhitung disimpan pada disk.

Penginternasionalan

PostgreSQL 12 memperluas dukungan untuk pengumpulan ICU dengan memungkinkan pengguna untuk menentukan "pengumpulan non-deterministik" yang dapat, misalnya, memungkinkan perbandingan tidak peka huruf besar/kecil atau tidak peka aksen.

Otentikasi

PostgreSQL memperluas dukungannya terhadap metode autentikasi yang kuat dengan beberapa peningkatan yang memberikan keamanan dan fungsionalitas tambahan. Rilis ini memperkenalkan enkripsi sisi klien dan sisi server untuk autentikasi melalui antarmuka GSSAPI, serta kemampuan PostgreSQL untuk menemukan server LDAP ketika PostgreSQL dikompilasi dengan OpenLDAP.

Selain itu, PostgreSQL 12 kini mendukung opsi autentikasi multifaktor. Server PostgreSQL sekarang dapat meminta klien untuk memberikan sertifikat SSL yang valid dengan nama pengguna yang sesuai menggunakan clientcert=verify-full, dan menggabungkannya dengan persyaratan metode autentikasi terpisah (misalnya scram-sha-256).

administrasi

PostgreSQL 12 memperkenalkan kemampuan untuk melakukan pembangunan kembali indeks non-pemblokiran menggunakan perintah REINDEX CONCURRENTLY. Hal ini memungkinkan pengguna untuk menghindari downtime DBMS selama pembangunan kembali indeks yang panjang.

Selain itu, di PostgreSQL 12, Anda dapat mengaktifkan atau menonaktifkan checksum halaman di cluster shutdown menggunakan perintah pg_checksums. Sebelumnya, checksum halaman, sebuah fitur yang membantu memverifikasi integritas data yang disimpan di disk, hanya dapat diaktifkan ketika cluster PostgreSQL diinisialisasi menggunakan initdb.

Sumber: linux.org.ru

Tambah komentar