Perbandingan Database : MySQL - PostgreSQL - Oracle - Microsoft SQL Server

Saat ini sedang mikir-mikir database mana yang paling cocok dengan aplikasi yang akan saya buat. Kebutuhan saya adalah: skalabilitas, biaya, dan performa. Skalabilitas menjadi prioritas pertama mengingat database aplikasi tersebut kemungkinan besar akan tumbuh pesat seiring pengguna dan data yang disimpan di dalamnya.


Setelah mengumpulkan dari berbagai sumber, berikut ini rangkuman yang dapat saya peroleh:

Operating System yang bisa menjalankan:
RDBMSWindowsMac OS XLinuxBSDUnix
Microsoft SQL ServerYa----
MySQLYaYaYaYaYa
OracleYaYaYa-Ya
PostgreSQLYaYaYaYaYa

Lisensi

RDBMSMaintainerLisensi
Microsoft SQL ServerMicrosoftProprietary
MySQLSun Microsystems (sekarang dibeli Oracle Corporation)GPL dan Proprietary
OracleOracle CorporationProprietary
PostgreSQLPostgreSQL Global Development GroupPostgreSQL licence (Free and Open Source)

Limitasi

RDBMSMax DB SizeMax Table SizeMax Row SizeMax Column per RowMax Blob/Clob SizeMax Char SizeMax Number SizeMin Date ValueMax Date ValueMax Column Name Size
Microsoft SQL Server524 258 TB (32 767 files * 16 TB max file size)524 258 TBUnlimited300002 GB2 GB126 bits00019999128
MySQLUnlimitedMyISAM storage limits: 256 TB; Innodb storage limits: 64 TB64 kB40964 GB (longtext, longblob)64 kB (text)64 bits1000999964
OracleUnlimited (4 GB * block size per tablespace)4 GB * block size (with BIGFILE tablespace)8 kB1000Unlimited4000 B126 bits-4712999930
PostgreSQLUnlimited32 TB1.6 TB250-1600 depending on type1 GB (text, bytea) – stored inline or 2 GB (stored in pg_largeobject)1 GBUnlimited-4713587489763


Setelah melihat rangkuman di atas, Microsoft SQL Server mempunyai limitasi yang lebih baik, namun sayang harus dijalankan di Windows dan ada biaya lisensi. Oracle sebenarnya skalable, namun Max Row Size hanya 8kB. Saya belum tahu apa aja yang dihitung dalam max row size oracle ini. Mysql cukup menjanjikan walaupun hanya mempunyai max row size 64kB, namun seperti dalam dokumentasinya text dan blob disimpan terpisah sehingga tidak dalam perhitungan max row size tersebut.

Mysql lebih unggul 2 kali lipat dari PostgresSQL untuk max table size. namun PostgreSQL sepertinya lebih baik dari sisi performa dibanding MySQL jika mengelola database yang besar dan diakses oleh user yang banyak secara stimultan. Ini PR berikutnya untuk memutuskan apakah memakai MySQL atau PostgreSQL. Pencarian belum berakhir…



[UPDATE]

Saya mempunyai database MySQL dan Postgre yang sama- sama besar, kira-kira 10GB filesize nya. Dari sisi performance Postgres lebih stabil, sedangkan MySQL sering kehabisan memory. Untuk MySQL saya kasih solusi instan dengan menambah 2 Server masing-masing dengan 64GB RAM. Saya buat replikasi ke dua server tersebut, sehingga untuk baca (SELECT) bisa ditangani di replika. Sudah terlanjur pakai MySQL dan males merubah ke Postgres (karena bukan saya yg bikin aplikasinya, hehehe)

Setelah saya selidiki dari lognya (dengan mencatat slow query ke dalam log) terlihat bahwa MySQL sangat tidak optimized dalam query yang melibatkan subquery atau join pada tabel yang isinya banyak (sebuah tabel saya bisa berisi jutaan rows).

Sedangkan Postgres dengan RAM 16 GB masih anteng2 aja, padahal di server tersebut banyak sekali aplikasi macem-macem.


Sumber : http://blog.iqbal.or.id/2011/11/11/perbandingan-database-engine-mysql-vs-postgresql-vs-oracle-vs-microsof-sql-server/

Tidak ada komentar

Diberdayakan oleh Blogger.