PostgreSQL juga memperkenalkan banyak fitur terobosan lainnya di versi 10 hingga 11, 12, dan 13 yang menjadikannya pesaing nyata terhadap Oracle, seperti peningkatan partisi, kueri paralel, dan replikasi logis. Dalam entri blog ini, kami akan menampilkan beberapa fitur PostgreSQL baru dan penting yang disertakan dalam versi PostgreSQL yang lebih baru.
Fitur Partisi
Partisi Deklaratif
Hingga PostgreSQL versi 9.4, tidak ada partisi sebenarnya di PostgreSQL. Itu dicapai hanya melalui pewarisan tabel, yang menawarkan fungsionalitas dan manfaat kinerja yang sangat terbatas. Sebagian besar fungsi dikelola secara manual melalui pemicu atau perintah SQL. Misalnya, kami harus menggunakan pemicu untuk mengarahkan baris sebelum INSERT ke partisi yang benar. Kita harus membuat indeks untuk setiap partisi secara terpisah. PostgreSQL versi 10 melahirkan partisi deklaratif, tetapi kami masih harus membuat batasan dan indeks untuk setiap partisi.
PostgreSQL 11 hadir lengkap dengan serangkaian fitur Partisi baru yang sangat mengesankan untuk membantu meningkatkan kinerja dan juga membantu membuat tabel yang dipartisi lebih transparan untuk aplikasi.
Replikasi logis dari tabel yang dipartisi
Dengan PostgreSQL 13, mereka memperkenalkan dukungan untuk mereplikasi tabel yang dipartisi secara logis. Sebelumnya, Anda dipaksa untuk mereplikasi partisi ke standby Anda satu per satu. Sekarang, bagaimanapun, Anda dapat secara otomatis mereplikasi semua partisi Anda pada waktu yang sama
Metode Partisi
Metode partisi yang saat ini didukung adalah range, list, dan hash.
Kunci &Indeks
Dukungan penuh untuk kunci asing pada tabel yang dipartisi telah ditambahkan di PostgreSQL 12. PostgreSQL juga menawarkan dukungan untuk kunci utama, indeks, dan pemicu pada tabel yang dipartisi.
Partisi Default
PostgreSQL memungkinkan pembuatan partisi "default" untuk menyimpan data yang tidak cocok dengan partisi lainnya. Pengguna Oracle akan menyukai fitur ini karena tidak tersedia di Oracle Database.
Gerakan Baris
Pernyataan UPDATE yang mengubah kolom kunci partisi sekarang menyebabkan baris yang terpengaruh dipindahkan ke partisi yang sesuai.
Pemangkasan Partisi
Tingkatkan kinerja SELECT melalui peningkatan strategi penghapusan partisi selama perencanaan dan eksekusi kueri. Metode baru untuk melakukan eliminasi partisi telah ditambahkan. Algoritme baru ini dapat menentukan partisi yang cocok dengan melihat klausa WHERE kueri. Algoritme sebelumnya memeriksa setiap partisi, secara bergantian, untuk melihat apakah itu cocok dengan klausa WHERE dari kueri. Hal ini menghasilkan peningkatan waktu perencanaan tambahan seiring dengan bertambahnya jumlah partisi.
Pemangkasan Partisi Selama Eksekusi Kueri
Untuk pernyataan yang disiapkan, parameter kueri tidak diketahui sebelum eksekusi. Query Planner tidak dapat menghilangkan partisi selama fase perencanaan karena parameter tidak diketahui. Jadi, pelaksana melakukan pemangkasan partisi selama eksekusi untuk mengakses hanya partisi yang cocok dengan parameter.
Fitur PostgreSQL Enterprise Baru dan Berkembang dengan Rilis TerbaruKlik Untuk TweetFitur Pengindeksan
Meliputi Indeks
PostgreSQL sekarang memungkinkan Anda untuk menambahkan kolom non-kunci dalam indeks btree. Karena kueri biasanya perlu mengambil lebih banyak kolom daripada hanya yang mereka cari, PostgreSQL memungkinkan Anda membuat indeks di mana beberapa kolom hanyalah "payload" dan bukan bagian dari kunci pencarian. Ini membantu dalam melakukan pemindaian indeks saja untuk mengambil baris yang diperlukan.
Indeks Ulang Secara Bersamaan
Memulai PostgreSQL 12, dimungkinkan untuk membangun kembali indeks dengan REINDEX SECARA BERSAMAAN tanpa mengunci tabel untuk membaca/menulis, seperti perintah Oracle REBUILD INDEX.
Pembuatan Indeks Paralel
Dengan pembuatan indeks paralel (Diperkenalkan di PostgreSQL 11, saat ini hanya berlaku untuk indeks b-tree), indeks dapat dibuat lebih cepat hingga nilai max_parallel_workers dan pengaturan maintenance_work_mem cukup besar untuk menampung banyak salinan data. Pembuatan indeks paralel dapat secara signifikan mengurangi waktu pembuatan indeks Anda.
Deduplikasi Data dalam Indeks B-Tree
Terkadang akan ada entri duplikat dalam indeks. Ini berarti bahwa simpul daun dalam indeks B-Tree dengan setidaknya dua entri indeks dalam indeks yang sama berisi data yang sama untuk semua kolom indeks. Dengan penambahan deduplikasi di PostgreSQL 13, Anda dapat mengelompokkan entri indeks B-Tree duplikat ini dan mengumpulkannya dalam entri grup. Manfaatnya adalah menghemat ruang dan mengurangi beban pada disk dan RAM, karena Anda tidak perlu menduplikasi data kolom. Entri duplikat juga menyebabkan kembung indeks yang tidak diinginkan.
Otentikasi
SCRAM-SHA-256
Di PostgreSQL 11 datang dukungan untuk otentikasi kata sandi SCRAM-SHA-256. Metode ini mencegah sniffing kata sandi pada koneksi yang tidak tepercaya dan memungkinkan Anda menyimpan kata sandi dalam bentuk hash kriptografis.
Dari semua metode otentikasi kata sandi yang saat ini didukung, ini adalah yang paling aman.
GSSAPI
GSSAPI memungkinkan autentikasi yang aman, serta sistem masuk tunggal otomatis untuk sistem yang mendukungnya. Metode autentikasi ini bergantung pada pustaka keamanan yang kompatibel dengan GSSAPI. Data yang dikirim melalui koneksi database tidak akan dienkripsi kecuali SSL digunakan; namun otentikasi itu sendiri aman. GSSAPI dengan otentikasi Kerberos dimungkinkan dengan PostgreSQL menurut standar industri. Saat Kerberos digunakan, prinsip standar digunakan dalam format “namalayanan/namahost@realm”. Setiap prinsip yang disertakan dalam tab kunci yang digunakan oleh server akan diterima oleh server PostgreSQL.
LDAP
Beroperasi mirip dengan otentikasi kata sandi, metode otentikasi ini menggunakan LDAP sebagai metode verifikasi. Ini hanya digunakan untuk memvalidasi pasangan nama pengguna dan kata sandi, maka pengguna harus sudah ada di database agar otentikasi berfungsi. Otentikasi LDAP beroperasi baik dalam mode pengikatan sederhana atau yang disebut pencarian+pengikatan. Search+bind memungkinkan Anda menggunakan pengenal lain dibandingkan dengan mode pengikatan sederhana, yang hanya mengizinkan nama khusus, nama domain, atau email yang digunakan.
Sertifikat
Metode autentikasi sertifikat menggunakan sertifikat SSL untuk mengautentikasi. Akibatnya, ini hanya tersedia untuk koneksi SSL. Dengan otentikasi sertifikat, tidak diperlukan kata sandi. Klien hanya perlu memberikan sertifikat yang valid dan tepercaya untuk dapat mengotentikasi. Nama umum sertifikat akan dicocokkan dengan nama pengguna database, dan jika ditemukan kecocokan, klien akan masuk.
Fitur penting lainnya
Vacuum Paralel
Dengan dirilisnya PostgreSQL 13, peningkatan pada perintah VACUUM diimplementasikan. Perbaikan yang dimaksud adalah penambahan opsi parameter PARALLEL. Dengan PARALLEL, Anda dapat melakukan fase indeks vakum dan pembersihan indeks VACUUM. Ini memungkinkan Anda untuk menyedot beberapa indeks secara paralel yang sesuai dengan satu tabel.
Kueri Paralel
Sebagian besar kueri Laporan, yang umumnya memindai banyak data, mengalami penurunan kinerja karena perlu memindai atau menggabungkan data dari banyak baris bahkan dengan pemindaian indeks. Kueri ini hanya dapat menggunakan satu CPU hingga 9.4 dan dijalankan secara serial.
Dengan kueri paralel (yang menawarkan pemindaian sekuensial paralel, gabungan gabungan, gabungan hash, agregat, dan fitur rencana kueri paralel lainnya), kueri ini dapat memanfaatkan banyak pekerja, dan kinerja dapat tingkatkan dari 2x menjadi 10x sesuai dokumentasi.
Lihat postingan ini untuk mempelajari kapan harus menggunakan kueri paralel.
Replikasi Logis Asli
PostgreSQL memperkenalkan replikasi logika asli di versi 10 untuk menyediakan opsi replikasi yang lebih fleksibel, tidak seperti replikasi streaming dan lebih seperti Oracle Streams, untuk mereplikasi tabel, kolom, atau baris tertentu. Ini dapat digunakan untuk memisahkan antara beberapa database atau mengkonsolidasikan dari beberapa database. Dan juga dapat mereplikasi di antara berbagai versi utama PostgreSQL.
Prosedur Tersimpan dengan Transaksi Tertanam
Satu lagi tambahan yang membuat PostgreSQL kompatibel untuk migrasi dari database Oracle.
Kami tidak memiliki kontrol transaksi di dalam program pgsql (DO blok atau fungsi) di versi 9.4, dan harus menggunakan solusi seperti dblink untuk memulai dan melakukan/mengembalikan transaksi .
Dengan prosedur tersimpan, yang ditayangkan perdana di versi 11, sekarang kita dapat menerapkan kontrol transaksi dalam struktur pgsql seperti while loop, for loop, atau pernyataan if else. Meskipun prosedur tersimpan mirip dengan fungsi, prosedur tersebut harus dipanggil oleh perintah CALL dan dapat bekerja sebagai program independen.
Kolom yang Dihasilkan
Seperti database Oracle, kolom yang dihasilkan di PostgreSQL dapat menyimpan data yang dihitung secara otomatis dari kolom lain di dalam baris. Ini mempercepat kueri dengan tidak perlu menghitung nilai selama eksekusi kueri, dan sebagai gantinya, nilai kolom yang dihasilkan dihitung pada INSERT atau UPDATE ke baris.
Kompilasi JIT
PostgreSQL 11, 12 dan 13 semuanya mendukung kompilasi Just-in-Time (JIT), yang ditambahkan kembali pada tahun 2018. Kompilasi JIT adalah proses mengubah evaluasi program yang ditafsirkan menjadi sebuah program asli. Dengan kompilasi JIT, proses ini dapat dilakukan pada saat run time. Keuntungan JIT adalah kemungkinan menghasilkan fungsi khusus ekspresi yang dapat dijalankan oleh CPU secara asli. Pada gilirannya, prosesnya memberi Anda percepatan.
Checksum Halaman
Pemeriksaan halaman adalah fitur yang membantu Anda memverifikasi integritas data yang disimpan ke disk. Sebelumnya, Anda hanya dapat mengaktifkan checksum halaman selama inisialisasi cluster PostgreSQL. PostgreSQL 12 memperkenalkan kemampuan untuk mengaktifkan atau menonaktifkan checksum halaman di cluster offline melalui perintah pg_checksums.
Ringkasan
Seperti yang Anda lihat dari artikel ini, PostgreSQL adalah sistem database yang terus berkembang yang menghadirkan banyak fitur canggih ke dalam tabel. Setiap versi baru menambahkan fitur baru yang menarik yang menjadikannya pesaing nyata bagi database lain seperti Oracle. Fitur partisi dan pengindeksannya mendapatkan banyak pembaruan baru yang ditambahkan ke kotak peralatannya yang sudah luas.
Jika Anda mencari solusi terkelola untuk database PostgreSQL Anda, jangan ragu untuk memeriksa layanan ScaleGrid untuk PostgreSQL kami. Kami menyediakan uji coba 30 hari gratis yang memungkinkan Anda menggunakan semua fitur manajemen kami tanpa batasan. Harga mulai dari $10/bulan dan memberi Anda akses ke solusi hosting PostgreSQL tingkat perusahaan yang terkelola sepenuhnya dengan dukungan 24/7.