PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Fitur Baru Terbaik di PostgreSQL 14

Menurut StackOverflow, PostgreSQL adalah database open-source paling populer, dengan semakin banyak pengembang dan administrator yang ingin bekerja dengannya. PostgreSQL 14, versi terbaru yang dirilis pada September 2021, memiliki lebih dari 200 peningkatan dan fitur baru, yang secara umum terbagi dalam tiga area:Keamanan, Performa, dan Pemantauan.

Mulai dari versi 1.9.2, dirilis awal tahun ini, ClusterControl sekarang mendukung versi terbaru PostgreSQL 14.

Dalam postingan ini, kita akan melihat fitur paling menonjol, pembaruan besar, dan peningkatan yang tersedia di PostgreSQL 14.

Keamanan

Perubahan keamanan PostgreSQL 14 yang paling signifikan adalah pindah ke SCRAM sebagai autentikasi default setelah autentikasi SCRAM-SHA-256 pertama kali diperkenalkan di PostgreSQL 10. SCRAM menyediakan solusi yang jauh lebih sederhana dan kuat untuk mengatur kepatuhan data keamanan. Otentikasi MD5 default sebelumnya memiliki beberapa kelemahan yang dieksploitasi di masa lalu.

Selain autentikasi yang ditingkatkan, PostgreSQL 14 menyederhanakan proses penetapan kemampuan hanya-tulis dan baca-saja kepada pengguna pada tabel, tampilan, dan skema dengan memperkenalkan dua peran yang telah ditentukan sebelumnya, pg_write_all_data, dan pg_read_all_data. Peran sebelumnya membuatnya nyaman untuk membuat hak istimewa bergaya pengguna super. Meskipun nyaman untuk aktivitas dan akses, akun semacam ini harus digunakan dengan hemat. Peran terakhir membuatnya berguna dalam memberikan akses baca-saja bagi pengguna ke semua tabel, skema, dan tampilan dalam database. Peran ini akan memiliki akses baca secara default ke semua tabel yang baru dibuat.

Kinerja

Korporasi memproses lebih banyak data, dan kecepatan, volume, &variasi (tiga Vs Big Data) tidak menunjukkan tanda-tanda melambat. PostgreSQL 14 telah membuat beberapa perubahan yang sangat signifikan untuk dapat ditingkatkan dan ditingkatkan untuk mendukung beban kerja ini dan meningkatkan kinerja. Ini dapat dikelompokkan ke dalam lima bidang berikut:

Skalabilitas dan Performa

PostgreSQL 14 memberikan pencapaian besar dalam kinerja penghapusan dan pembaruan pada tabel dengan jumlah partisi yang tinggi. Ini memungkinkan penghapusan dan pembaruan pada tabel yang dipartisi untuk menggunakan pemangkasan partisi waktu eksekusi. Yang terpenting, versi ini dapat menskalakan ke lebih banyak partisi daripada sebelumnya, memungkinkan PostgreSQL untuk menangani database yang jauh lebih besar daripada sebelumnya.

Di PostgreSQL versi 14, partisi sekarang juga dapat dilepas secara bersamaan, sehingga lebih mudah untuk mengelola tabel data deret waktu yang besar. Hal ini dimungkinkan karena fungsi date_bin() baru, yang memungkinkan pengguna untuk meringkas data deret waktu ke dalam rentang tanggal dengan lebih baik dan lebih mudah.

PostgreSQL 14 menambahkan dukungan untuk kompresi LZ4 untuk TOAST. LZ4 menggunakan teknologi kompresi terbaru dan berfokus pada peningkatan kecepatan dekompresi dan kompresi data dokumen. LZ4 akan menyempurnakan aplikasi dengan dokumen XML dan JSON yang lebih besar, dan algoritme kompresi ini dapat dikonfigurasi pada tingkat sistem dan kolom.

Basis Data Terdistribusi dan Beban Kerja

PostgreSQL 14 juga menawarkan peningkatan dalam penskalaan database secara horizontal dengan memperkenalkan dua peningkatan utama dalam postgres_fdw (pembungkus data asing) yang berperan penting dalam meningkatkan kinerja untuk database terdistribusi. Perubahan ini mendukung penyisipan data secara massal dan pemindaian tabel paralel pada tabel asing (bila async_capable disetel).

Caching koneksi juga meningkatkan kinerja dengan memungkinkan koneksi terbuka di seluruh transaksi. Kami juga dapat menyebutkan mode pipeline Libpd, yang meningkatkan kinerja database terdistribusi dengan memungkinkan aliran perubahan ditransmisikan tanpa menunggu konfirmasi jaringan pada setiap perintah.

Keterkelolaan 

PostgreSQL 14 juga membahas masalah pengasapan indeks B-tree; indeks yang sering diperbarui mengasapi dari waktu ke waktu karena tupel mati yang dapat dihapus dengan menjalankan ruang hampa.

Karena ini, pemisahan halaman yang tidak dapat diubah dapat disebabkan oleh penyisipan atau pembaruan saat halaman terisi di antara ruang hampa. Versi ini telah meningkatkan proses vakum dengan mendeteksi dan menghapus tupel mati di antara vakum (parameter INDEX_CLEANUP disetel ke Otomatis).

Peningkatan lain pada sistem vakum adalah menghapus halaman yang terhapus dengan penuh semangat. Di versi sebelumnya, menghapus halaman yang dihapus membutuhkan dua siklus vakum, dengan menandai halaman sebagai dihapus terlebih dahulu dan siklus kedua benar-benar mengosongkan ruang tersebut.

Kueri dan Penyesuaian Kinerja Indeks

Manajemen indeks dalam penyetelan aplikasi adalah peningkatan besar lainnya dalam PostgreSQL 14. Khususnya, REINDEX CONCURRENTLY dan CREATE INDEX CONCURRENTLY, memungkinkan beberapa perintah dijalankan sekaligus tanpa mengganggu satu sama lain. Lebih lanjut tentang indeks, indeks BRIN menjadi lebih fleksibel karena dapat merekam banyak nilai min/maks per rentang, yang berharga untuk grup nilai di setiap rentang halaman. Selain itu, indeks BRIN bekerja secara efektif dengan data yang tidak terlokalisasi dengan baik di heap dengan menggunakan filter bloom.

Opsi FREEZE dalam perintah COPY telah ditingkatkan dengan memperbarui bit visibilitas halaman pada kinerja pemuatan data. COPY mode biner juga sekarang lebih cepat.

PostgreSQL 14 telah menyempurnakan paralelisme kueri dengan menambahkan paralelisme kueri ke REFRESH MATERIALIZED VIEW dan RETURN QUERY. Penyempurnaan ini telah diluncurkan ke gabungan loop bersarang dan pemindaian sekuensial paralel.

PostgreSQL 14 telah meningkatkan jumlah tempat statistik yang diperluas dapat digunakan untuk ekspresi dan estimasi klausa OR. Tidak seperti sebelumnya, di mana statistik hanya pada kolom, sekarang diizinkan pada sekelompok ekspresi. Tampilan sistem pg_stats_ext_exprs melaporkan statistik seperti itu.

Replikasi Logika yang Disempurnakan 

Replikasi logis telah ditingkatkan untuk memungkinkan streaming transaksi panjang yang sedang berlangsung melalui API atau ke pelanggan. Pada versi sebelumnya, transaksi yang lebih besar dari logical_decoding_work_mem ditulis ke disk sampai transaksi selesai sebelum mereplikasi transaksi ke pelanggan. Dengan peningkatan baru yang diterapkan, replikasi logis menangani volume besar pernyataan DDL dengan lebih efisien.

Setelah setiap perintah, replikasi logis menulis pesan pembatalan cache ke WAL untuk diproses dengan mengalirkan transaksi yang sedang berlangsung. Proses ini menciptakan manfaat kinerja yang signifikan.

Pemantauan 

Salah satu kata kunci terbesar di tahun 2022 adalah pemantauan, karena administrator dan pengembang menginginkan lebih banyak wawasan tentang kinerja dari waktu ke waktu. PostgreSQL 14 telah memperkenalkan fitur baru untuk membantu pemantauan. Perubahan paling signifikan dari semuanya adalah pemindahan sistem hash kueri dari pg_stat_statement ke database inti. Pemantauan kueri telah diizinkan di beberapa sistem PostgreSQL dan fungsi logging dengan menggunakan satu ID.

Versi ini juga memperkenalkan parameter pemantauan baru berikut:

  1. Idle_session_timeout

  2. REINDEX pada indeks turunan dari tabel yang dipartisi

  3. Maintenance_io_concurrency

  4. Pg_stat_progress_copy

  5. Halaman_stat_wal

Meningkatkan ke PostgreSQL 14

Jika Anda ingin memutakhirkan versi PostgreSQL Anda saat ini ke versi 14, Anda memiliki tiga opsi utama yang akan melakukan tugas ini:

  1. Pg_dumpall:Ini adalah alat pencadangan logis yang memungkinkan Anda membuang data dan memulihkannya di PostgreSQL baru Versi:kapan. Di sini Anda akan memiliki periode waktu henti yang akan bervariasi sesuai dengan ukuran data Anda. Anda perlu menghentikan sistem atau menghindari data baru di node utama, menjalankan pg_dumpall, memindahkan dump yang dihasilkan ke node database baru, dan memulihkannya. Selama waktu ini, Anda tidak dapat menulis ke database PostgreSQL utama Anda untuk menghindari inkonsistensi data.

  2. Pg_upgrade:Ini adalah alat PostgreSQL untuk meningkatkan versi PostgreSQL Anda. Ini bisa berbahaya di lingkungan produksi, dan kami tidak merekomendasikan metode ini dalam kasus itu. Dengan menggunakan metode ini, Anda akan memiliki waktu henti, tetapi mungkin akan jauh lebih sedikit daripada menggunakan metode pg_dump sebelumnya.

  3. Replikasi Logis:Sejak PostgreSQL 10, Anda dapat menggunakan metode replikasi ini yang memungkinkan Anda untuk melakukan peningkatan versi utama dengan waktu henti nol (atau hampir nol). Dengan cara ini, Anda dapat menambahkan node siaga di versi PostgreSQL terakhir, dan ketika replikasi terbaru, Anda dapat melakukan proses failover untuk mempromosikan node PostgreSQL baru.

Untuk informasi lebih detail tentang fitur PostgreSQL 14 baru, Anda dapat merujuk ke Dokumentasi Resmi.

Menutup

PostgreSQL 14 benar-benar meningkatkan permainan bagi pengguna basis data sumber terbuka yang populer ini. Sekarang pengembang dan administrator telah meningkatkan kemampuan untuk meningkatkan kinerja dan skalabilitas tinggi, penyempurnaan untuk database terdistribusi, peningkatan observabilitas, dan banyak lagi.

ClusterControl membuat peningkatan ke versi teknologi terbaru menjadi sederhana dan bebas stres. Jika Anda belum menggunakan ClusterControl, Anda dapat mengevaluasinya secara gratis selama 30 hari. Untuk detail selengkapnya tentang rilis terbaru ClusterControl 1.9.2, lihat catatan rilis lengkap.

Tetap up to date dengan semua berita terbaru dan praktik terbaik untuk database open-source paling populer dengan mengikuti kami di Twitter, dan LinkedIn, dan berlangganan newsletter kami.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengubah kata sandi pengguna PostgreSQL?

  2. Tidak dapat menemukan titik masuk bernama 'InterlockedIncrement' di DLL 'kernel32.dll' - [dilindungi email] 64 bit

  3. Menjalankan beberapa pernyataan dengan Postgresql melalui SQLAlchemy tidak mempertahankan perubahan

  4. Heroku Postgres Error:PGError:ERROR:organisasi relasi tidak ada (ActiveRecord::StatementInvalid)

  5. 2ndQuadrant Deutschland – Tawar-menawar Pembukaan Pelatihan Khusus