Perbandingan PostgreSQL vs MySQL
Di dunia programming, istilah Database sering digunakan oleh Developer maupun programmer untuk menyimpan data – data entah berupa teks, gambar, video maupun audio. Database sendiri dibagi menjadi dua macam, yaitu :
- Database SQL : Database jenis ini menggunakan bahasa atau perintah SQL (Structured Query Language) untuk melakukan proses mulai dari pembuatan, pengubahan hingga penghapusan suatu data atau yang dikenal dengan istilah CRUD. Contohnya : PostgreSQL, MySQL, Oracle, MSSQL, dan lainnya.
- Database no SQL : Database jenis ini tidak menggunakan perintah SQL pada database nya. Contohnya : MongoDB, Cassandra, CouchDB, dan masih banyak lagi.
Namun kali ini yang akan dibahas adalah database PostgreSQL dengan MySQL. Berikut Informasinya.
Siapa sajakah yang menggunakan kedua database ini?
Berikut terdapat beberapa perusahaan yang menggunakan kedua database tersebut.
- PostgreSQL : Apple, Red Hat, Sun Microsystem, Cisco, Skype, dan masih banyak lagi. Untuk lebih detailnya cek disini.
- MySQL : GitHub, NASA, Youtube, Spotify, dan masih banyak lagi. Untuk lebih detailnya cek disini.
Untuk melihat daftar fitur yang dimiliki kedua database tersebut. Berikut penjelasannya.
Masing – masing Fitur yang dimiliki
PostgreSQL | MySQL | |
---|---|---|
Dikenal | Database open-source yang memiliki fitur paling unggul. | Database open-source paling populer |
Development | PostgreSQL adalah sebuah proyek terbuka (open-source) | MySQL adalah produk yang bersifat open-source |
Lisensi | Lisensi bergaya MIT | Lisensi Publik Umum GNU |
Bahasa Pemrograman yang digunakan | C | C dan C++ |
Alat GUI | PgAdmin | MySQL Workbench |
ACID | Ya | Ya |
Mesin Penyimpanan | Mesin penyimpanan tunggal | Mesin penyimpanan ganda seperti InnoDB dan MyISAM |
Pencarian teks lengkap | Ya | Ya |
Menghapus tabel sementara | Tidak terdapat keyword TEMP atau TEMPORARY pada pernyataan DROP TABLE |
MySQL mendukung keyword TEMP ataupun TEMPORARY pada pernyataan DROP TABLE yang memungkinkan Anda untuk menghapus tabel sementara saja. |
DROP TABLE |
Mendukung opsi CASCADE untuk menghapus objek yang bergantung pada tabel. |
Tidak mendukung opsi CASCADE |
TRUNCATE TABLE |
Pada PostgreSQL, TRUNCATE TABLE mendukung beberapa fitur seperti CASCADE , RESTART IDENTITY , CONTINUE IDENTITY , transaksi aman, dll. |
Pada MySQL, TRUNCATE TABLE tidak mendukung CASCADE dan transaksi aman sebagai contoh jika suatu data terhapus, hal itu tidak bisa dikembalikan semula. |
Kolom Auto Increment | SERIAL |
AUTO_INCREMENT |
Fungsi Analitik | Ya | Tidak |
Tipe Data | Mendukung banyak tipe data lanjutan seperti array, hstore, dan lainnya. | Tipe data standar SQL |
Unsigned integer | Tidak | Ya |
Tipe Data Boolean | Ya | Menggunakan TINYINT(1) secara internal untuk Boolean |
Tipe Data Alamat IP | Ya | Tidak |
Menetapkan nilai default untuk kolom | Mendukung panggilan fungsi dan konstanta keduanya | Harus berupa konstanta atau CURRENT_TIMESTAMP untuk kolom TIMESTAMP atau DATETIME |
CTE | Ya | Ya (MySQL mendukung CTE sejak versi MySQL 8.0) |
Hasil EXPLAIN |
Lebih detail | Kurang detail |
Materialized views | Ya | Tidak |
CHECK constraint (kendala) | Ya | Tidak (MySQL mengabaikan pengecekan kendala) |
Pewarisan tabel | Ya | Tidak |
Bahasa pemrograman untuk prosedur tersimpan | Ruby, Perl, Python, TCL, PL/pgSQL, SQL, JavaScript, dll. | Sintaks SQL:2003 untuk prosedur tersimpan |
FULL OUTER JOIN |
Ya | Tidak |
INTERSECT |
Ya | Tidak |
EXCEPT |
Ya | Tidak |
Indeks Parsial | Ya | Tidak |
Indeks Bitmap | Ya | Tidak |
Indeks Ekspresi | Ya | Tidak |
Covering indexes | Ya (sejak versi 9.2) | Ya. MySQL mendukung Covering indexes yang memungkinkan data untuk diambil dengan memindai indeks sendiri tanpa menyentuh data tabelnya. Ini menguntungkan jika ada tabel besar dengan jutaan baris. |
Triggers | Mendukung triggers yang dapat menjalankan sebagian besar jenis perintah, kecuali yang mempengaruhi basis data secara keseluruhan. | Terbatas pada beberapa perintah |
Partisi | RANGE, LIST | RANGE, LIST, HASH, KEY, dan partisi komposit menggunakan kombinasi RANGE ataupun LIST dengan sub-partisi HASH ataupun KEY |
Jadwal Tugas | PgAgent | Acara yang dijadwalkan |
Skalabilitas koneksi | Setiap koneksi yang baru merupakan proses sistem operasi | Setiap koneksi yang baru merupakan utas sistem operasi |
Kesimpulan
Itulah perbandingan antara database PostgreSQL dengan MySQL. Kami berharap artikel ini dapat membantu dan bermanfaat bagi Anda.