Nejvýkonnější servery Nejvýkonnější servery
Dlouhodobý vítěz
ve srovnávacích testech výkonu

MySQL a jeho odnože aneb co vybrat?

Open source projekt MySQL je na trhu již více než 20 let, zato MariaDB se poprvé objevila až v roce 2009. MariaDB se zpočátku zaměřovala na vývoj rovnocenné náhrady za MySQL s otevřeným zdrojovým kódem. V současné době však oba projekty mají velmi odlišné vývojové cíle, stejně jako jejich zcela bezplatná a plně kompatibilní náhrada Percona Server for MySQL. Který systém pro správu databází je lepší?

Něco z historie

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

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ě:

MySQL

MariaDB

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

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ě:

Percona

Co tedy vybrat?

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.