MySQL, Percona Server, MariaDB – o co z tym chodzi?

W ostatnim czasie kilkukrotnie już zdarzyło się, że osoba z którą rozmawiałem sądziła, że MariaDB to zupełnie nowy silnik bazodanowy niekompatybilny z MySQL.

Nic bardziej mylnego. Sytuacja wygląda bardzo podobnie do tej z OpenOffice sprzed kilku lat. Jak pamiętacie w 1999 roku firma Sun Microsystems przejęła produkty firmy StarDivision i udostępniła pod nazwą StarOffice. Pakiet był darmowy, ale zamknięty ze silnym wsparcie od firmy Sun. W 2002 roku pojawiła się pierwsza wersja OpenOffice, na której bazował StarOffice 6.0.
Był to bardzo popularny zabieg w tamtym czasie (patrz OpenSUSE, CentOS). Firma wydawała otwartą, darmową wersję community rozwijaną przez społeczność, następnie markowała swoją marką i rozprowadzała za odpowiednie benefity (często w formie płatnego supportu).

Nie wszystko układało się jednak najlepiej, ale w takim zawieszeniu środowisko współtwórców OO trwało przez wiele lat. W 2010 roku firma Oracle przejęła Sun i wszelkie projekty, w tym OpenOffice/StarOffice. Środowisko open-source było zaniepokojone poczynaniami Oracle (np. pozwy w sprawie korzystania z Javy w Androidzie) i postanowiono zupełnie oddzielić się od korporacyjnych wpływów – powstał LibreOffice.

To tak w sporym skrócie. Co wspólnego ma z tym MySQL? MySQL tworzony był przez szwedzką firmę MySQL AB, która została wykupiona przez Sun w 2008 roku, a ta została przejęta… Zgadza się, przez Oracle w 2010 roku.
Ale już w 2004 roku środowisko wolnego oprogramowania zaczęło mieć „problemy” z MySQL, a dokładniej programiści chociażby PHP. Wszystko z powodu zmian w licencji MySQL od wersji 4.1, ponieważ od tego momentu MySQL na darmowej licencji można było używać wyłącznie do zastosowań niekomercyjnych. W momencie przejęcia przez Sun, jeden z twórców MySQL (Monty Widenius) stworzył forka MySQL pod nazwą MariaDB.

MariaDB

MariaDB jest oparta na tym samym kodzie co MySQL, ale rozpowszechniana tylko na licencji GPL. Twórcy starają się utrzymywać ciągłą kompatybilność do pierwowzoru – MySQL. Produkt ma być dostępny zawsze na licencji GPL, czego nie można powiedzieć o przyszłości MySQL od Oracle.

Do wersji 5.5 (aktualna stabilna) MariaDB jest numerowana identycznie do MySQL i kompatybilna w pełni. Natomiast następcą MariaDB 5.5 będzie MariaDB 10 (obecnie w fazie rozwoju, będzie częściowo kompatybilna z MySQL 5.6).

Percona Server

Firma Percona natomiast stworzyła fork MySQL zastępując jej silnik innoDB (względy licencyjne) silnikiem pisanym przez zespół XtraDB. Głównym powodem wprowadzenia własnych zmian była słaba skalowalność bazy MySQL w oryginale.

Percona Server jest w stanie skalować się aż na 48 rdzeni procesora. Podobnie jak MariaDB, również Percona Server od wersji 5.6 nie będzie w pełni kompatybilna z MySQL 5.6. Percona Server wykorzystuje natomiast dobre smaczki z MariaDB, oraz pewne udostępnione fragmenty kodu przez Google (np. SHOW USER/TABLE/INDEX).

Percona Server 5.5 udostępniona jest na wersji CC BY-SA 2.0.

Podsumowując

Do wersji MySQL 5.5 swodobnie możecie korzystać z alternatyw jakimi są MariaDB oraz Percona Server, bardziej skłaniając się do Percony która ma bardzo dobrze optymalizowany kod do większych zastosowań.

Jeśli nie będziecie wykorzystywać wprost dodatków MySQL 5.6, to również bez obaw możecie przejść na MariaDB lub Percona Server