Jaka jest różnica między MariaDB a MySQL?

82

Jaka jest różnica między MariaDB a MySQL? Nie znam obu tych rzeczy. Jestem głównie programistą front-endem.

Czy są podobne pod względem składniowym? Czym różnią się te dwa języki zapytań?

Wikipedia wspomina tylko o różnicy między licencjonowaniem:

MariaDB jest rozwiniętą przez społeczność gałęzią bazy danych MySQL, której impulsem jest utrzymanie przez społeczność jej wolnego statusu na GPL, w przeciwieństwie do niepewności co do statusu licencji MySQL pod jej obecnym posiadaniem przez Oracle.

chrisjlee
źródło
Może to być pomocne: hackr.io/blog/mariadb-vs-mysql
Saurabh Hooda

Odpowiedzi:

94

MariaDB to wstecznie kompatybilny, binarny zamiennik MySQL . Oznacza to:

  • Pliki danych i plików definicji tabel (.frm) są kompatybilne binarnie.
  • Wszystkie interfejsy API, protokoły i struktury klienta są identyczne.
  • Wszystkie nazwy plików, pliki binarne, ścieżki, porty, gniazda itp. Powinny być takie same.
  • Wszystkie łączniki MySQL działają bez zmian z MariaDB.
  • Pakiet mysql-client działa również z serwerem MariaDB.

W najczęstszych praktycznych scenariuszach MariaDB wersja 5.xy będzie działać dokładnie tak samo jak MySQL 5.xy, MariaDB podąża za wersją MySQL, tj. Jej numer wersji służy do wskazania, z którą wersją MySQL jest kompatybilna.

MariaDB powstała jako rozwidlenie MySQL autorstwa Michaela „Monty” Wideniusa, jednego z pierwszych twórców MySQL i współzałożyciela MySQL Ab. MariaDB Fundacja działa jako kustosz MariaDB.

Główną motywacją stojącą za MariaDB było dostarczenie MySQL w wersji floss na wypadek, gdyby Oracle poszło na całość z MySQL. Warto zauważyć, że Monty wypowiedział się przeciwko przejęciu MySQL (przez przejęcie Sun) przez Oracle.

Chociaż MariaDB ma być kompatybilna z MySQL, z tego czy innego powodu istnieje wiele problemów ze zgodnością i różnych funkcji :

  • MariaDB obejmuje wszystkie popularne silniki open source,
  • MariaDB twierdzi kilka ulepszeń prędkości w stosunku do MySQL i
  • istnieje kilka nowych rozszerzeń nici, których MySQL nie ma

    Wreszcie nazwa pochodzi od córki Monty, Marii (druga to My), ponieważ MySQL jest teraz zastrzeżonym znakiem towarowym Oracle Corporation.

Yannis
źródło
1
Dziękuję za bardzo wyczerpujące wyjaśnienie. Właśnie tego szukałem.
chrisjlee
5
MariaDB wyraźnie nie jest kompletna dla SQL-99, jak zostało to określone na stronie, do której prowadzi ta odpowiedź. Na przykład w ogóle nie obsługuje asercji, a CTE nie zostały jeszcze wprowadzone w stabilnej wersji. Historia jest taka sama dla MySQL.
Air
Uważam, że linki do montyprogram dot com zgniły, ale nie mam pojęcia, gdzie można znaleźć odpowiedniki tych linków w Internecie.
Hay
MariaDB obsługuje InnoDB, prawda? dlaczego tak jest napisane?
Paulson Peter,
1
@PaulsonPeter Tak, MariaDB obsługuje InnoDB. Nie jestem pewien, o co chodzi w drugim pytaniu.
yannis,
15

To rozwidlenie - dwa oddzielne projekty, zaczynające się od tej samej oryginalnej bazy kodu, ale poruszające się w różnych kierunkach. Zdarza się to dość często w projektach typu open source, w których Oracle kupiło firmy sponsorujące.

W moim rozumieniu MariaDB jest utrzymywana i ulepszana przez oryginalnych programistów MySQL, a MySQL jest utrzymywana i ulepszana przez Oracle. To zależy od tego, kogo chcesz wykonać tę pracę.


źródło