MariaDB vs. MySQL

LAMP, MAMP и WAMP – нещо познато?

Това са съкращения на Linux/Mac/Windows-Apache-MySQL-PHP/Perl/Python. Безплатни софтуерни пакети с отворен код, изискващи напълно функционираща система за управление на база данни. В тази статия ще се съсредоточим върху две от най-използваните база данни, ще ги разгледаме отблизо сравнявайки техните предимства и недостатъци и съпоставяйки приликите и разликите.

Кое е по-доброто решение - MySQL или MariaDB? Това ще разберем в следващите редове.

Какво е MySQL?

MySQL се появява в началото на 90-те, поради нуждата от бърза и гъвкава база данни за целите на уеб базираните апликации. И така Майкъл „Монти“ Видениус създава такава и я нарича MySQL. Тя е популярен избор и е основен компонент в широко използвания софтуерен пакет LAMP (както и в другите „AMP“). Известни приложения, които използват MySQL база данни са: TYPO3,MODx, Joomla, WordPress, phpBB, MyBB, Drupal и други. MySQL се използва и от много популярни сайтове като Google (макар не и за търсения), Facebook, Twitter, Flickr и YouTube.

Във всички платформи с изключение на Windows, MySQL не изисква GUI инструмент за администриране и управление на базата данни. Потребителите могат да използват вградения команден порт или да инсталират MySQL Workbench.

Какво е MariaDB?

След придобиването на MySQL от Oracle, няколко от основните разработчици на базата данни, включително и Монти се оттеглят и създават MariaDB. Целта на MariaDB е да създаде алтернатива на MySQL – с повече функционалности и по-добра производителност.

MariaDB е базирана на съответстващата версия на MySQL, ако съществува такава. Например MariaDB 5.1.53 е базирана на MySQL 5.1.53, с поправяне на грешките, нови функции, допълнителни storage engines, както и подобрения в производителността.

Приликите

Логично, приликите между двете бази данни са доста, тъй като MariaDB е базирана на отворения изходен код на MySQL и е нейно разклонение. Инсталирайки MariaDB ще видите, колко сходна е тя с MySQL. Започвайки от наименованията на инсталираните и двоични файлове са и това, че са инсталирани в същата локация както в MySQL. Минавайки през SQL езикът и командите, конфигуриращите файлове също, с няколко нови и лесни за научаване специфични части за MariaDB. Задълбочавайки се ще видим, че портовете и сокети, API клиентите и протоколите са същите както при MySQL. Всички MySQL връзки, позволяващи езици като Java, C, PHP, .Net, Perl, Python, и Ruby да работят директно с MySQL базата данни, работят непроменени и с MariaDB.

Или казано накратко, ако изтриете MySQL и инсталирате MariaDB безпроблемно ще подкарате всичко, което до момента е било на старата ви база данни.

Разликите

До тук не видяхме особени разлики между MariaDB и MySQL. Защо тогава MariaDB съществува изобщо и какво осигурява тя, което липсва в MySQL? Защото има нови функции, подобрения на производителността и изчистен код от грешки, все неща които няма да откриете в MySQL. Ето и някои от значимите разлики:

  • *Лесна за работа*

Едно е сигурно, MariaDB търси и намира начини да направи живота на своите потребители по-лесен и постига това с няколко съществени подобрения. INDEX и TABLE статистиките, които предоставят няколко нови информационни схеми, както и нови FLUSH и SHOW команди, чрез които да разберете по-добре работата на сървъра и да видите какво натоварва базата данни. Друга голяма разлика има при дългия работен процес на командите ALTER TABLE и LOAD DATA INFILE. Вече няма да се чудите до къде е стигнал процеса, защото MariaDB има механизъм, чрез който клиента получава съобщение от сървъра. С днешните високо-производителни сървъри за бази данни се изисква изключителна прецизност, a MariaDB поддържа микросекунди при работата с типове данни TIME, DATETIME и TIMESTAMP и свързаните с тях функции CAST и dynamic columns. Разработчиците представиха и някои NoSQL типове функции като HandlerSocketvi.

Има още много подобрения, но едно ни направи силно впечатление, а именно, че MariaDB има използваеми и полезни подзаявки, което при MySQL е невъзможно.

  • *Производителността*

MariaDB претендира за значително подобрен query optimizer и за и много други подобрения, свързани с производителността. Определени показатели сочат, че MariaDB се справя значително по-бързо с комплексното натоварване спрямо MySQL.

  • *По-чести security ъпдейти и релийзи*

MySQL анонсират нова версия на всеки 2 месеца, но много често потребителите се оплакват, че действително обявленията за сигурност са неясни и не идентифицират конкретни проблеми или такива, които са коригирани, което прави управлението на базата доста трудно.

За разлика от тях, MariaDB поддържа много добри стандарти като реализират обявления на сигурността и ъпдейти по едно и също време и управляват по подходящ начин сигурността и прозрачността при ъпдейти. При тях списъка на идентификаторите CVE се актуализира и поддържа доста педантично, като дори го обновява с вече разрешени случаи.

  • *Повече storage engines
    *

MariaDB се отличава с поддръжка на голям брой storage engines и плъгините - Maria, PBXT, XtraDB и др. Множество плъгини са налични и за MySQL, но чрез трети приложения ,докато при MariaDB те са част от официалната версия и са добре интегрирани и лесни за употреба.

  • *По-добър код = по-добро тестване*

В тази връзка разработчиците на MariaDB са направили страхотни подобрения при тестването на инфраструктурата. Ефектът от тези разширения и подобрения е, че грешките се откриват по-рано и се поправят по-бързо, а новите функционалности се тестват в ефективно, реални условия много преди официалното им пускане.

MariaDB става все по-популярна и предпочитана база данни сред най-големите в онлайн пространството като Wikipedia, Google за вътрешната си система, Automattic – компанията зад WordPress, Booking.com и много други, които са избрали да преминат от MySQL на нея.

И тъй като темата е необятна, а и ние ви загатнахме предимствата в използването на MariaDB, съвсем скоро очаквайте статия по темата „Как да: как да заменим MySQL с MariaDB в CentOS6 (използвайки yum).

Етикети: #mysql #lamp #mariadb #web-application #data-base #development