Perbedaan RDBMS PostgreSQL dan MySQL

Muhammad Uwais Iskandar
Badr Interactive
Published in
3 min readMar 8, 2024
MySQL and PostgreSQL

PostgreSQL dan MySQL adalah dua sistem manajemen basis data relasional (RDBMS) yang cukup populer saat ini. Walaupun dalam konsep PostgreSQL & MySQL memiliki kemiripan, kedua sistem ini menawarkan berbagai fitur dan kelebihan sesuai dengan kebutuhan aplikasi yang akan kita bangun.

Bagaimana kita dapat menentukan database apa yang cocok untuk sistem yang akan kita bangun? Mari coba kita lihat beberapa poin perbedaan dari kedua database tersebut.

1. ACID Compliance

Atomicity, consistency, isolation, and durability (ACID) adalah sifat database yang memastikan kevalidan data, walaupun terjadi kesalahan atau error system. Tidak semua engine MySQL memiliki ACID Compliance jadi ketika memilih engine perlu diperhatikan hal ini, sedangkan semua engine PostgreSQL menerapkan ACID Compliance.

2. Relational database type

MySQL adalah pure relational database. Sedangkan, PostgreSQL adalah relational database berbasis object. Dengan demikian, Kita dapat menyimpan data sebagai object di PostgreSQL.

Object adalah tipe data yang umum digunakan pada object-oriented programming (OOP) seperti Java dan .Net. Menggunakan PostgreSQL akan lebih mudah untuk developer dengan bahasa pemrograman berbasis object (OOP). PostgreSQL juga mendukung tipe data tambahan lainnya seperti array dan XML.

3. Concurrency Control

Concurrency control adalah proses pengaturan operasi–operasi dalam banyak transaksi yang berjalan secara simultan pada database tanpa mengganggu operasi pada transaksi lainnya sehingga dapat menghasilkan data yang konsisten.

PostgreSQL memiliki fitur Multiversion concurrency control (MVCC), dimana sangat cocok untuk system yang membutuhkan concurrency users tinggi. Salah satu fitur yang tidak dimiliki oleh MySQL. MVCC adalah fitur database yang membuat duplikasi dari sebuah records agar aman untuk membaca & mengubah data dalam waktu bersamaan. Ketika menerapkan MVCC, multiple users dapat membaca & melakukan perubahan data secara bersamaan dalam konkurensi tinggi tanpa khawatir terhadap integritas data.

4. Indexes

Database menggunakan index untuk mengambil data dengan lebih cepat. Kita dapat membuat indexing data-data yang sering diakses, dengan melakukan konfigurasi indexing pada database. Data yang telah di-indexing akan dikelompokan & ditaruh secara berdekatan agar data lebih cepat ditarik.

Teknik indexing yang dimiliki MySQL adalah B-tree dan R-tree indexing yang menyimpan data index secara hierarchy. Sedangkan, PostgreSQL memiliki lebih banyak type indexing, seperti trees, expression index, partial index, dan hash index. Dalam hal ini indexing pada PostgreSQL lebih cepat terutama jika terdapat data yang kompleks

5. Views

View adalah sebuah data yang dibuat untuk menampilkan data yang diinginkan dari multiple table. Baik di MySQL maupun PostgreSQL memiliki fitur views ini, tetapi dalam PostgreSQL terdapat advance options yang dapat digunakan dalam views.

Materialized View adalah salah satu fitur lain yang dimiliki oleh PostgreSQL tapi tidak tersedia di MySQL. Materialized View memiliki kelebihan dari sisi normalisasi performa database yang lebih cepat. Materialized View ini akan dibutuhkan pada saat system anda sudah memiliki data yang banyak & butuh data cepat secara real time.

6. Store Procedure

Store procedure adalah SQL query atau code statement yang bisa kita tulis & simpan. Kita dapat menggunakan code secara berulang, yang akan membuat task database lebih efisien.

Keduanya database, MySQL and PostgreSQL support fitur ini, tetapi PostgreSQL dapat memungkinkan kita menuliskan stored procedure dalam bahasa selain SQL.

7. Trigger

Trigger adalah sebuah store procedure yang jalan secara otomatis ketika terjadi sebuah event di dalam database system. Dalam MySQL kita hanya bisa menggunakan AFTER dan BEFORE trigger pada SQL INSERT, UPDATE & DELETE. Artinya, procedure akan dijalankan sebelum atau setelah data berubah.

Dalam PostgreSQL selain AFTER & BEFORE, juga ada INSTEAD OF trigger, INSTEAD OF trigger yang tidak menunggu proses statement pada SQL selesai tetapi akan tetap menjalankan procedure-nya. Namun, INSTEAD OF hanya berlaku untuk views saja.

Kesimpulan:

Dalam sisi fitur PostgreSQL memiliki lebih banyak keunggulan jika dibandingkan dengan MySQL, tetapi fitur PostgreSQL tersebut akan dibutuhkan untuk kondisi tertentu saja.

Jika system yang kita akan kita bangun cukup sederhana dan tidak memerlukan fitur-fitur tersebut akan lebih cocok menggunakan MySQL. Tetapi jika sistem yang kita bangun butuh kompleksitas data yang besar, konkurensi user tinggi, dan fitur-fitur lain yang ditawarkan PostgreSQL akan cocok menggunakan PostgreSQL.

--

--