Ekosistem MySQL

MySQL adalah salah satu database open source paling populer di dunia, menurut DB-Engines. Versi pertamanya dirilis pada tahun 1995 dan telah dalam pengembangan berkelanjutan sejak saat itu, sehingga menjadikannya database relasional yang sangat populer bahkan hingga saat ini. MySQL sukses berkat ekosistem yang mencakup berbagai edisi open source dan komersial. MySQL banyak digunakan di infrastruktur lokal maupun cloud. Penyedia layanan cloud utama untuk MySQL adalah Google Cloud, Oracle, Amazon Web Services (AWS), dan Microsoft Azure.

Ragam MySQL

Saat ini ada berbagai jenis MySQL yang tersedia di pasar, yang memperluas MySQL dengan menambahkan fitur untuk pengoptimalan, skalabilitas, pembuatan cluster, pemulihan dari bencana (disaster recovery), dan lainnya. Dua database utama yang dibangun menggunakan forking MySQL dan saat ini aktif adalah MariaDB dan Percona Server untuk MySQL.

MySQL Community Edition dan Enterprise Edition

Oracle mengembangkan dan memelihara MySQL Community Edition dan Enterprise Edition. Enterprise Edition mencakup dukungan teknis yang disediakan oleh Oracle dan juga memiliki beberapa fitur tambahan seperti pemantauan perusahaan MySQL, autentikasi PAM, keamanan yang ditingkatkan, peningkatan performa dan skalabilitas, pencadangan untuk perusahaan, audit perusahaan, pengelolaan cluster perusahaan, pembuatan cluster thread, dan banyak lagi.

MariaDB

Pendiri MySQL kemudian membuat MariaDB dengan jaminan bahwa software ini akan tetap menjadi open source. Beberapa fitur di MySQL sebenarnya dirilis lebih awal di MariaDB daripada di MySQL, seperti dukungan JSON, replikasi multi-sumber, dan replikasi thread paralel. Beberapa keunggulan utama MariaDB dibandingkan MySQL adalah:

  • Pengenalan mesin penyimpanan baru seperti ColumnStore untuk analisis, mesin S3 untuk mengarsipkan tabel di AWS S3, Aria Engine, yang merupakan versi optimal dari MyISAM, MyRocks untuk aplikasi kompresi tinggi dan traffic yang lebih tinggi, Cassandra, SphinxSE, dan lainnya
  • Kemampuan eksekusi kueri secara paralel
  • Penggabungan thread, yang tersedia di MySQL Enterprise Edition tetapi tidak tersedia di Community Edition
  • Router gratis yang disebut MaxScale
  • Solusi multi-induk: Galera Cluster

Percona

Sebuah perusahaan bernama Percona mengembangkan dan memelihara Percona Server untuk MySQL. Percona melakukan banyak upaya selama bertahun-tahun terkait MySQL untuk mengoptimalkannya dan juga memperkenalkan fitur baru. Beberapa manfaat utama menggunakan Percona dibandingkan MySQL adalah: 

  • Penelusuran teks lengkap InnoDB yang lebih baik, mesin penyimpanan memori dan mekanisme pembersihan (flushing) yang lebih baik, lebih banyak fungsi hash/ringkasan, dukungan untuk enkripsi bawaan di tablespace InnoDB, log biner, dan file sementara
  • Pengenalan buffer penulisan ganda paralel untuk mengoptimalkannya
  • Alat XtraBackup untuk pencadangan data aktif dengan opsi pencadangan penuh dan inkremental
  • Dukungan untuk mesin penyimpanan MyRocks dan Toku
  • Instrumen pemecahan masalah lanjutan seperti penghitung performa per tabel, per indeks, per klien, per pengguna, dan per thread
  • Logging audit dan autentikasi PAM, yang tersedia di MySQL Enterprise Edition, tetapi tidak tersedia di Community Edition
  • Pt-toolkit, yang dikembangkan oleh Percona, yakni layanan utilitas yang memiliki banyak opsi untuk mengelola MySQL

Jenis mana yang harus dipilih?

Kebutuhan aplikasi akan menentukan database mana yang akan dipilih karena database yang berbeda memiliki fitur unik yang menargetkan kasus penggunaan tertentu. Misalnya, jika aplikasi Anda memerlukan analisis, Anda dapat menggunakan clickhouse di Percona atau columnstore di MariaDB, tetapi opsi seperti itu tidak tersedia di MySQL. Demikian pula, jika Anda ingin menggunakan fitur penggabungan thread, yang tidak tersedia di MySQL Community Edition, Anda harus memilih fitur Enterprise MySQL atau threadpool open source di Percona dan MariaDB.

MySQL di cloud

Database cloud adalah database yang dibangun untuk dijalankan pada lingkungan cloud publik atau hybrid cloud guna membantu mengatur, menyimpan, dan mengelola data dalam suatu organisasi. Database cloud dapat ditawarkan sebagai database-as-a-service (DBaaS) terkelola atau di-deploy di virtual machine (VM) berbasis cloud dan dikelola sendiri oleh tim IT internal. Penyedia cloud utama untuk MySQL terkelola meliputi:

Google Cloud

Google Cloud menawarkan versi MySQL yang dihosting virtual machine, yang harus dikelola sendiri oleh pengguna, dan Cloud SQL, yang merupakan penawaran terkelola sepenuhnya.

Amazon Web Services (AWS)

Amazon Web Services (AWS) menawarkan opsi MySQL yang dihosting VM dan solusi terkelola sepenuhnya dalam bentuk RDS. AWS juga memiliki penawaran Aurora, yang merupakan penawaran MySQL yang kompatibel dengan MySQL dengan fitur tambahan.

Azure SQL Database

Azure menawarkan dua model deployment untuk MySQL yang mirip dengan vendor cloud lainnya: opsi virtual machine dalam bentuk MySQL di VM Azure dan versi yang terkelola sepenuhnya dalam bentuk Azure Database for MySQL.

Oracle Cloud

Oracle menawarkan kemampuan untuk menghosting MySQL di virtual machine-nya. Oracle juga memunculkan penawaran baru yang terkelola sepenuhnya yang disebut MySQL HeatWave Database Service.

Digital Ocean

Digital Ocean juga memiliki kemampuan untuk menghosting MySQL di virtual machine-nya. MySQL juga menawarkan opsi hosting yang terkelola sepenuhnya untuk MySQL.

Solusi cluster atau ketersediaan tinggi (HA)

Banyak perusahaan telah berupaya memperluas MySQL dan membuat produk yang menyediakan failover dan ketersediaan tinggi untuk database MySQL. Beberapa di antaranya adalah alat yang digunakan langsung dengan MySQL, dan beberapa di antaranya merupakan modifikasi pada kode sumber MySQL yang menghasilkan produk terpisah, yang menyediakan ketersediaan tinggi atau cluster multi-induk. Beberapa solusi HA dan skalabilitas MySQL yang populer mencakup:

  • MySQL Group Replication dan InnoDB Cluster

InnoDB Cluster terdiri dari setidaknya tiga instance MySQL Server, dan menyediakan fitur penskalaan dan ketersediaan tinggi. InnoDB Cluster terdiri dari MySQL Shell, MySQL Router, dan MySQL Server dengan Group Replication. Detail selengkapnya dapat ditemukan di Cluster InnoDB Bab 23.

Percona XtraDB Cluster adalah solusi pembuatan cluster sinkron yang menyediakan fitur ketersediaan tinggi, replikasi paralel, dan skalabilitas. Percona XtraDB Cluster menyertakan alat admin ProxySQL yang secara otomatis mengonfigurasi node Percona XtraDB Cluster menggunakan ProxySQL. Detail selengkapnya dapat ditemukan di Cluster Percona XtraDB.

  • MariaDB Galera Cluster

MariaDB Galera Cluster adalah cluster multi-primary yang bersifat sinkron secara virtual untuk MariaDB yang menyediakan fitur ketersediaan tinggi dan skalabilitas. Layanan ini didukung oleh server MariaDB dan library penyedia wsrep Galera. Library ini menyediakan fitur seperti penggabungan node otomatis, replikasi paralel akurat, topologi multi-primary, dan banyak lagi. Detail selengkapnya dapat ditemukan di MariaDB Galera Cluster.

  • Cluster Continuent Tungsten

Cluster Tungsten menyediakan satu paket mudah, yang memiliki semua komponen inti yang diperlukan untuk men-deploy dan mengelola database MySQL sebagai cluster. Solusi ini menyediakan solusi pembuatan cluster geografis. Solusi ini mencakup Tungsten Manager, Replicator, Connector, Node Data, dan Dashboard. Detail selengkapnya dapat ditemukan di Cluster Continuent Tungsten.

  • MariaDB Xpand (sebelumnya dikenal sebagai ClustrixDB) 

MariaDB Xpand menyediakan SQL terdistribusi yang mematuhi ACID, ketersediaan tinggi, fault tolerance, penskalaan operasi tulis, dan penyebaran skala horizontal untuk workload transaksional. MariaDB Xpand adalah komponen dari MariaDB Enterprise. Solusi ini mencakup satu atau beberapa node MaxScale dan tiga node Xpand atau lebih. Detail selengkapnya dapat ditemukan di MariaDB Xpand.

  • ScaleArc

ScaleArc adalah software load balancing database yang menyediakan ketersediaan tinggi. Detail selengkapnya dapat ditemukan di ScaleArc.

  • Vitess

Vitess memiliki fitur sharding bawaan yang memungkinkan Anda mengembangkan database tanpa menambahkan logika sharding ke aplikasi untuk memberikan skalabilitas dan ketersediaan tinggi. Detail selengkapnya dapat ditemukan di Vitess.

  • Alat yang menyediakan replikasi standar untuk failover: MHA, ProxySQL, MaxScale, dan Orchestrator
  • Layanan berbasis cloud seperti Google Cloud, Oracle, AWS, dan Azure menyediakan HA internal untuk MySQL

Alat MySQL

Alat MySQL tersedia dalam semua bentuk—berbasis web, antarmuka command line (CLI), dan antarmuka pengguna grafis (GUI). MySQL memiliki berbagai alat open source dan komersial untuk perancangan database, pengembangan, administrasi, pencadangan, pemantauan performa, dan pemberitahuan. 

Berikut beberapa alat pemantauan MySQL dengan GUI yang populer:

Percona Monitoring and Management, Prometheus, MySQL Enterprise Monitor, New Relic, SolarWinds, HeidiSQL, AppDynamics, Datadog, dan SQLyog.

Berikut beberapa alat administrasi, pengembangan, atau utilitas yang populer:

  • Berbasis GUI - MySQL Workbench, HeidiSQL, DBeaver, dbForge Studio, Navicat, SQLyog
  • Berbasis CLI - Percona Toolkit, ghost

Detail alat populer:

  • MySQL Workbench - milik MySQL, tersedia dalam Community Edition and Enterprise Edition dengan fitur lanjutan
  • Percona Monitoring and Management (PMM) - dikembangkan oleh Percona dan tersedia secara gratis
  • HeidiSQL - dikembangkan oleh Ansgar Becker dan tersedia secara gratis
  • Percona Toolkit - dikembangkan oleh Percona dan tersedia secara gratis
  • Toad - milik Quest dan merupakan alat berbayar
  • phpMyAdmin - alat berbasis web open source gratis untuk mengelola MySQL
  • DBeaver - dikembangkan oleh komunitas open source, tersedia di Community Edition dan Enterprise Edition dengan fitur lanjutan yang dikelola oleh DBeaver
  • Navicat - milik CyberTech dan merupakan alat berbayar
  • SQLyog - milik Webyog dan juga merupakan alat berbayar

Beberapa alat utama lainnya untuk pemantauan yang dilengkapi grafik untuk menganalisis tingkat error, pola kueri, dan traffic dengan mekanisme pemberitahuan adalah New Relic, Zabbix, Cortex, Prometheus, dan Grafana.

Menjalankan MySQL dengan Container/Kubernetes

Menjalankan database melalui cluster Kubernetes menggunakan image container Docker kini menjadi semakin populer. Layanan ini membantu mengelola database menggunakan kode, deployment yang mudah dan cepat, perlindungan data, isolasi dari aplikasi, dan kegunaan resource bersama. Pada dasarnya, semua keunggulan Docker dapat dimanfaatkan oleh sistem database. Ada juga beberapa operator Kubernetes yang sudah tersedia untuk MySQL. Namun, masih banyak aspek yang dapat ditingkatkan.

Siap mencoba MySQL?

Google Cloud menawarkan penawaran MySQL yang terkelola sepenuhnya - Cloud SQL untuk MySQL

Pelajari cara Cloud SQL untuk MySQL membantu Anda berinovasi. Baca dokumentasi

Langkah selanjutnya

Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.