MySQL bylo vyvinuto švédskou společností MySQL AB. Tu později koupila společnost Sun Microsystems. No a o pár let později koupila Sun Microsystem společnost Oracle. Takže MySQL dnes patří společnosti Oracle. Díky těmto různým akvizicím se v průběhu let začaly vytvářet odnože původního MySQL. V podstatě jde jenom o čtyři projekty:
Nebudeme se zabývat tím, čím se společnosti živí, protože všechny potřebují peníze a tak prodávají nejrůznější „Enterprise řešení“, např. MariaDB SkySQL nebo třeba nejnovější MySQL Database Service with HeatWave, ale pojďme se podívat na to, co je opensource, co si můžeme nainstalovat na vlastní stroj, používat to bez placení licenčních poplatků a co to umí nebo naopak neumí.
Začnu dobrou zprávou. Pokud neděláte nic speciálního, tak všechny systémy jsou v podstatě plně kompatibilní, především co se klientské strany týče. Jenže jak říká německé přísloví: „Čert vězí v detailu“. Tak se pojďme podívat na ty „maličkosti”.
MySQL má MySQL Community Server, což je to jediné, co můžete provozovat zdarma. Všechno potřebné najdete na https://dev.mysql.com/downloads/
Jak je vidět, tak kromě MySQL Community Serveru nabízí Oracle i řadu dalších nástrojů jako je můj oblíbený MySQL Shell a také grafické prostředí MySQL Workbench. MySQL rovněž podporuje nový protokol X DevAPI.
Podporovaná databázová úložiště:
MariaDB se už ani nesnaží vypadat jako MySQL. V procesech na serveru nenajdeme běžet proces /usr/sbin/mysqld, ale /usr/sbin/mariadbd. Nepodporuje X DevAPI a vůbec si dělá spousty věcí vlastní cestou. Z věcí které mi tam chybí nejvíc je, že na server s MariaDB se nepřipojíte pomocí MySQL Workbench.
Na druhou stranu vývojáři MariaDB udělali oproti Oracle spousty vylepšení. Například mezi podporovanými datovými úložišti najdeme Open Query GRAPH, Mroonga, Spider a další. Více v oficiální dokumentaci MariaDB.
Percona Server for MySQL vychází přímo z MySQL Community Serveru, tudíž rovněž umožňuje použít X DevAPI a plně využít MySQL Shell, v neposlední řadě i MySQL Workbench.
Navíc nabízí spoustu užitečných věcí z vlastní dílny, jako např. Percona XtraDB Cluster, což je HA clusterové řešení, Percona XtraBackup (velmi rychlé zálohování, při kterém nedochází k uzamčení databází), Orchestrator pro snadnou administraci clusteru, a také třeba spousta užitečných utilit v balíku Percona Toolkit.
Celý přehled je na adrese https://www.percona.com/doc/percona-distribution-mysql/8.0/index.html
Percona provedla v roce 2015 lety akvizici společnosti Tokutek, čímž se stala vlastníkem technologie Fractal Tree® indexing. Součástí Percona Serveru for MySQL je i databázový engine TokuDB.
Podporovaná databázová úložiště:
Když se podíváme na oficiální weby, tak najdeme například jen srovnání MariaDB vs. MySQL. Je to rozhodně zajímavé čtení, ale pokud se podíváme na porovnání vlastností Percona Serveru, tak získáme mnohem lepší obraz.
Hned na první pohled je vidět, že Oracle v MySQL Community Serveru záměrně nemá některé funkce. Otázkou je, zda je potřebujeme. Některé se hodí, např. Thread Pool je velmi užitečná věc.
Věc kterou ale potřebujeme často je dokumentace:
Můj závěr je velmi jednoduchý. Použijte MySQL, které máte v distribuci. Pokud vám nevyhovuje, nebo máte v distribuci nějakou zastaralou verzi, pak doporučuji Percona Server for MySQL.