Zdrowa konkurencja w biznesie jest niemal zawsze korzystna dla każdej ze stron. Wystarczy tylko spojrzeć na przykład Pepsi i Coli lub BMW i Mercedesa. Podobne korzyści może przynieść stworzenie nowej bazy danych Maria DB przez byłych twórców i programistów MySQL, na której bazuje wiele największych stron na świecie. Przyjrzyjmy się więc porównaniu obu opcji oraz temu, kiedy warto zdecydować się na jedną z nich.
Co to jest MariaDB?
MariaDB jest opracowanym przez społeczność, komercyjnie obsługiwanym rozwidleniem systemu zarządzania relacyjnymi bazami danych MySQL (RDBMS). Jednym z najważniejszych założeń twórców jest utrzymanie bazy danych na otwartym oprogramowaniu i licencji GPL.
Rozwój jest prowadzony przez niektórych byłych programistów MySQL, którzy postanowili stworzyć swój system z powodu obaw o przejęcie firmy przez Oracle Corporation.
Twórcy MariaDB od samego początku zamierzali zachować wysoką kompatybilność z MySQL, zapewniając możliwość zastępowania bazy danych i dokładne dopasowanie do interfejsów API i poleceń MySQL. Obejmuje nowy silnik pamięci, Aria, alternatywę dla MyISAM, która ma być domyślnym silnikiem transakcyjnym i nietransakcyjnym. Głównym programistą jest Michael Widenius, jeden z założycieli MySQL i założyciel Monty Program AB.
Co to jest MySQL?
MySQL to system zarządzania relacyjnymi bazami danych typu open source (RDBMS). Jego nazwa jest kombinacją „My”, imienia córki współzałożyciela Michaela Wideniusa, i „SQL”, skrótu od Structured Query Language.
MySQL jest darmowym oprogramowaniem typu open source na zasadach GNU General Public Licence i jest także dostępne na różnych licencjach własnościowych. MySQL był sponsorowany przez szwedzką firmę MySQL AB, która została kupiona przez Sun Microsystems (obecnie Oracle Corporation). W 2010 r., Kiedy Oracle przejął firmę Sun, Widenius rozwidlił projekt MySQL o otwartym kodzie źródłowym, aby stworzyć MariaDB.
MySQL jest składnikiem wielu aplikacji internetowych LAMP (i innych), który jest akronimem dla Linuksa, Apache, MySQL, Perl / PHP / Python. MySQL jest używany przez wiele aplikacji internetowych opartych na bazach danych, w tym WordPress, Drupal, phpBB i Joomla. MySQL jest także używany przez wiele popularnych stron internetowych, w tym Facebook, Flickr, MediaWiki, Twitter i YouTube.
MariaDB vs. MySQL – główne różnice
MySQL: MySQL to system zarządzania relacyjnymi bazami danych typu open source (RDBMS). Podobnie jak wszystkie inne relacyjne bazy danych, MySQL wykorzystuje tabele, ograniczenia, wyzwalacze, role, procedury składowane i widoki jako podstawowe komponenty, do których mamy dostęp. Tabela składa się z wierszy, a każdy wiersz zawiera ten sam zestaw kolumn. MySQL używa kluczy podstawowych do jednoznacznej identyfikacji każdego wiersza (np. Rekordu) w tabeli, a kluczy obcych do zapewnienia referencyjnej integralności między dwoma powiązanymi tabelami.
MariaDB: Ponieważ MariaDB jest rozwidleniem MySQL, struktura bazy danych i indeksy MariaDB są takie same jak w MySQL. Pozwala to na przejście z MySQL na MariaDB bez konieczności modyfikowania aplikacji, ponieważ dane i struktury danych nie będą musiały się zmieniać.
To oznacza, że:
- Pliki definicji danych i tabel są kompatybilne
- Protokoły klienta, struktury i interfejsy API są identyczne
- Łączniki MySQL będą działać z MariaDB bez modyfikacji
- Nawet narzędzia wiersza poleceń są podobne do mysqldump i mysqladmin, które nadal mają oryginalne nazwy, co pozwala MariaDB zachować zgodność.
Aby upewnić się, że MariaDB zachowuje kompatybilność drop-in, programiści MariaDB co miesiąc łączą kod MariaDB z kodem MySQL. Mimo wszystko istnieją pewne różnice między MariaDB i MySQL, które mogą powodować drobne problemy ze zgodnością.
Stopniowo MySQL rozdzieliło się MariaDB. Godnym uwagi przykładem był opracowywany wewnętrzny słownik danych dla MySQL 8. Była to duża zmiana w sposobie przechowywania i używania metadanych na serwerze. MariaDB nie ma równoważnej funkcji. Może to oznaczać koniec zgodności na poziomie plików danych między MySQL i MariaDB.
MySQL: MySQL jest napisany w C i C ++ i zawiera pliki binarne dla następujących systemów: Microsoft Windows, OS X, Linux, AIX, BSDi, FreeBSD, HP-UX, IRIX, NetBSD, Novell Netware i wiele innych.
MariaDB: system MariaDB jest napisany w C, C ++, Bash i Perl i ma pliki binarne dla następujących systemów: Microsoft Windows, Linux, OS X, FreeBSD, OpenBSD, Solaris i wielu innych.
Z racji tego, że MariaDB ma być binarnym zamiennikiem MySQL, powinniśmy być w stanie odinstalować MySQL, a następnie zainstalować MariaDB i (zakładając, że używamy tej samej wersji plików danych) móc się połączyć. Uwaga: aby zakończyć proces aktualizacji, musimy uruchomić mysql_upgrade.
Kiedy wybrać MariaDB, a kiedy MySQL?
Serwer MySQL nadaje się do kluczowych systemów produkcyjnych o dużym obciążeniu, a także do osadzania w masowo wdrażanym oprogramowaniu. Jest uważany za centralny składnik LAMP (Linux, Apache, MySQL i PHP). Baza danych MySQL jest dostępna dla różnych platform systemów operacyjnych, takich jak Linux, Windows, MAC, BSD UNIX itp. Popularne strony internetowe, takie jak Wikipedia, Facebook i YouTube, używają MySQL.
MariaDB ma znacznie większą liczbę nowych funkcji, co czyni ją lepszą pod względem wydajności i orientacji na użytkownika. MariaDB zapewnia silne wsparcie użytkownikom za pośrednictwem społeczności open source, forów internetowych, a nawet ekspertów. W ramach subskrypcji dla przedsiębiorstw dostępne jest całodobowe wsparcie.
Przede wszystkim MariaDB oferuje więcej i lepsze silniki pamięci masowej. Obsługa NoSQL, dostarczana przez Cassandrę, pozwala na uruchamianie SQL i NoSQL w jednym systemie. MariaDB obsługuje również TokuDB, który może obsługiwać ogromne zasoby danych dla dużych organizacji i użytkowników korporacyjnych. Silniki baz danych MySQL zostały zastąpione przez Arię, która oferuje lepsze buforowanie, co robi różnicę, jeśli chodzi o operacje wymagające dużej ilości paamięci.
Ciężko jednoznacznie stwierdzić, kiedy warto zdecydować się na jedną z opcji, jednak w ostatnim czasie możemy zaobserwować, że coraz więcej użytkowników skłania się ku młodszemu systemowi- MariaDB.