- PostgreSQL 16 meningkatkan performa dengan peningkatan mencolok pada paralelisme kueri, pemuatan data dalam jumlah besar, dan replikasi logis
- Memperkenalkan lebih banyak sintaks SQL/JSON, statistik pemantauan baru untuk beban kerja, serta fleksibilitas yang lebih besar dalam mendefinisikan aturan kontrol akses
Peningkatan performa
- Query planner kini dapat memparalelkan join FULL dan RIGHT, menghasilkan rencana yang lebih optimal untuk kueri yang menggunakan klausa DISTINCT atau ORDER BY, memanfaatkan incremental sort untuk kueri SELECT DISTINCT, dan mengoptimalkan window function
- Bulk loading dengan COPY ditingkatkan untuk pekerjaan tunggal maupun serentak, dengan peningkatan performa hingga 300% dalam beberapa kasus
- Memperkenalkan akselerasi CPU menggunakan SIMD pada arsitektur x86 dan ARM untuk meningkatkan performa saat memproses string ASCII dan JSON, array, serta pencarian subtransaction
Replikasi logis
- Kini replikasi logis dapat dijalankan dari instance standby, sehingga membuka opsi baru untuk distribusi pekerjaan
- Mereplikasi perubahan ke downstream dengan memanfaatkan standby alih-alih primary yang sibuk
- Performa replikasi logis juga ditingkatkan
- Subscriber dapat menerapkan transaksi besar menggunakan parallel worker
- Untuk tabel tanpa primary key, baris kini dapat ditemukan menggunakan indeks B-tree alih-alih sequential scan
- Dalam kondisi tertentu, sinkronisasi tabel awal dapat dipercepat dengan menggunakan format biner
Pengalaman pengembang
- Menambahkan lebih banyak sintaks dari standar SQL/JSON, termasuk constructor dan predicate seperti JSON_ARRAY(), JSON_ARRAYAGG(), dan IS JSON
- Angka ribuan kini dapat menggunakan underscore (5_432_000)
psql menambahkan \bind, sehingga kueri dengan parameter dapat ditulis dan diganti dengan variabel
- Dukungan untuk penyortiran teks ditingkatkan
Pemantauan
- Menambahkan
pg_stat_io, yang menyediakan metrik untuk menganalisis pola akses I/O secara mendetail
- Menambahkan field timestamp pada view
pg_stat_all_tables untuk mencatat waktu terakhir tabel atau indeks dipindai
- Membuat
auto_explain lebih mudah dibaca dengan mencatat nilai yang diteruskan ke statement berparameter
Kontrol akses dan keamanan
- Menyediakan opsi yang lebih rinci untuk kontrol akses
- Juga meningkatkan fitur keamanan lain, termasuk pengelolaan file pg_hba.conf dan pg_ident.conf, serta penambahan beberapa parameter koneksi klien yang berorientasi pada keamanan
1 komentar
Opini Hacker News
\bind, yang menjadi populer karena memungkinkan menjalankan kueri berparameter seperti yang dilakukan aplikasi.debug_io_direct.