Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL срещу MariaDB:какво трябва да знаете

И двете бази данни MySQL и MariaDB имат неоспорими общи черти. Те са най-добри системи за управление на бази данни в световен мащаб. За да разберем необходимостта от примирие на MySQL спрямо MariaDB, трябва да се върнем малко назад във времето.

Преди да се появи MariaDB, просто MySQL управляваше вселената на системите за управление на бази данни. Популярността му остава непоклатима дълго време. Предпочитанието му като надеждна СУБД от мнозина се дължи и на свързания с него базов език за програмиране C++.

През 2008 г. след това се случи придобиването на MySQL AB, шведската компания за MySQL, от Sun Microsystems. И накрая, през 2010 г. компанията Oracle се засили и придоби Sun Microsystems. Оттогава Oracle продължава да притежава, управлява и поддържа MySQL.

Въпреки това, по време на придобиването на тази система за управление на база данни от Oracle, нейните водещи разработчици и инженери смятат, че Oracle Database Server (комерсиална база данни) създава конфликт на интереси с MySQL. Това събитие доведе до създаването на MariaDB като разклонение на MySQL код.

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

MySQL срещу MariaDB

Тази статия има за цел да подчертае някои ключови характеристики, които сравнително отличават тези две системи за управление на бази данни.

Какво е MySQL?

Тази система за управление на релационна база данни има основната цел да организира съхраняваните данни на потребителя. Използването му е склонно с уеб сървъра Apache и езика за програмиране PHP. Той е популярен с дистрибуции на операционни системи Windows и Linux. По отношение на заявка към база данни, MySQL използва езика SQL.

Какво е MariaDB?

Тази СУБД съществува като разклонение на кодовата база на MySQL. Това е система за управление на релационна база данни. Както корпоративните, така и малките задачи се възползват от неговите възможности за обработка на данни. Можете да гледате на него като на подобрена версия на MySQL по отношение на подобрения в сигурността, производителността и използваемостта в допълнение към многобройните и мощни вградени функции.

Обобщение на функциите на MySQL срещу MariaDB

И MySQL, и MariaDB предлагат уникален набор от функции на съответните им потребителски общности.

Функции на MySQL

Следните са важните му характеристики:

  • Висока наличност
  • Гъвкавост и мащабируемост
  • висока производителност
  • Силни страни на склада в мрежата и данните
  • Поддръжка за стабилни транзакции

Функции на MariaDB

Следните са важните му характеристики:

  • Поддръжка за обратна съвместимост
  • Percona Server, също разклонение на MySQL сървър.
  • Софтуер с отворен код
  • Поддръжка на нови механизми за съхранение (FederatedX, XtraDB, Maria, PBXT)
  • Това е директен разклон на версията на MySQL Community.

Сравнение на производителността на MySQL и MariaDB

MariaDB отразява по-добър обхват на производителност от MySQL поради няколко оптимизации, свързани с него. Това е основната визия зад нейното развитие като алтернативна система за управление на релационни бази данни на MySQL.

Изгледи на база данни

Обикновената база данни е свързана с обикновени таблици. „Изгледите“ могат да бъдат изобразени като таблици на виртуална база данни. По същия начин, по който заявявате обикновени таблици на база данни, е същият начин, по който заявите тези таблици на виртуална база данни. Следователно начинът, по който заявявате изгледи, в голяма степен определя оптимизирането на производителността на свързаната система за управление на база данни.

Запитването на изглед в MySQL произвежда резултат от заявка, който обединява всички таблици, свързани с този изглед. Тази заявка дава допълнителни резултати от изглед, които не са необходими. Оптимизацията на MariaDB се грижи за такъв ненужен багаж с резултати. Заявката към база данни ще търси само таблици, свързани с нея, и няма да донесе нищо допълнително.

ColumnStore

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

По-добра производителност във флаш памет

Двигателят за съхранение на MyRocks в MariaDB е отговорен за добавянето на базата данни RocksDB. Основната цел на дизайна на тази база данни е да улесни по-добра производителност на флаш паметта чрез осигуряване на компресия на данни на високо ниво.

Сегментиран ключов кеш

Тази функция за производителност също е отговорна за подобряването на производителността на MariaDB. Нормалната операция с кеш включва конкуренция между различни нишки за заключване на кеширан запис. Колективната идентичност на тези включени ключалки е Mutexes. Тези ключалки трябва да остареят от тези мютексове, за да ги използват. По този начин множество нишки често ще се конкурират за един мьютекс.

Може да има само една нишка победител. Другите нишки, които не могат да се сдобият с мютекса за сортиране след сортиране, трябва да изчакат на опашка, за да го използва първа нишката победител. След като мьютексът бъде освободен, се провежда друга конкуренция на нишките - този конкурентен подход за осигуряване на мютекс за изпълнение на планирана операция води до забавяне на изпълнението. В резултат на това производителността на базата данни също се забавя.

За случая със сегментиран ключов кеш, операциите с нишки използват различен подход. Цяла страница не е под ключ. Вместо това, единствената засегната част от страницата е тази, свързана с конкретен целеви сегмент. Тази концепция води до множество нишки, които изпълняват задачите си чрез паралелно изпълнение на своите операции. В резултат на това базата данни обхваща по-добра производителност в резултат на паралелизъм на приложенията.

Виртуални колони

Тази интересна функция също е под крилото на поддръжката на база данни на MariaDB. Възможностите на виртуалните колони помагат на MariaDB при извършването на изчисления на ниво база данни. Тази функционалност е полезна, когато няколко приложения се нуждаят от достъп до една колона. Базата данни обработва отделните изчисления, свързани с приложението, вместо да оставя задачата на потребителя на базата данни. За съжаление MySQL няма късмета да приеме тази функция.

Паралелно изпълнение на заявки

От MariaDB 10.0 вече е възможно множество заявки да се изпълняват едновременно или една до друга. Функционалният подход на тази функция има интересен подход. Главният хост хоства всички заявки, планирани за изпълнение, и след това репликира някои на подчинения. Това създава възможност тези заявки да се изпълняват едновременно, следователно паралелно изпълнение. Прегръдката на MariaDB на тази функция за изпълнение на заявка за паралелизъм й дава безценно предимство пред MySQL.

Обединяване на нишки

Тази функция също е друга интересна концепция в домейна на MariaDB. Преди неговото внедряване, поискана връзка с база данни свързва всяка връзка с нишка. По този начин основната архитектура за успешна връзка с база данни беше подходът „една нишка на връзка“.

Обединяването на нишки промени нещата. Нова връзка прави избор от пул от отворени нишки, преди да изпълни заявки към база данни. Той предотвратява необходимостта от отваряне на нови нишки всеки път, когато е необходима нова заявка за връзка. Тази функция насърчава по-бързи резултати от заявката. MySQL Enterprise Edition е домакин на тази функция, но същото не може да се каже за неговото Community Edition.

Двигатели за съхранение

Механизмите за съхранение под MySQL са не само мощни, но и готови. За съжаление, същото не може да се каже за MySQL. Примери за такива мощни двигатели включват Aria и XtraDB. MySQL е достатъчно разширяем, за да побере някои от тези механизми за съхранение, но ще изисква от потребителя на базата данни да има техническите умения за прилагането им чрез ръчни инсталации. Това изискване го прави неприятен за новите потребители на база данни.

Съвместимост

MariaDB прави безпроблемни крачки, за да съществува в приложения, поддържани от MySQL, и го превъзхожда. Както може би сте забелязали, всяка версия на MySQL е свързана с Nemesis версия на MariaDB с подобен номер на версията като начин за индикация на нейната обща съвместимост. Накратко, MariaDB казва:„каквото може да направи MySQL, мога да направя по-добре.

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

Отворен код срещу собствена база данни

Името Oracle прави MySQL гигантски проект, който се сортира от много предприятия и организации по света. Тази слава обаче има своите предимства и недостатъци. Един основен недостатък е пускането на функции в големи или големи организации. Освен това този процес обикновено отнема много време.

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

Основни разлики между MariaDB и MySQL

  • Броят на двигателите за съхранение в MariaDB е повече в сравнение с MySQL. MariaDB има 12, което е много повече от тези в MySQL документацията.
  • По отношение на жизнеспособни пулове за връзки, MariaDB има 200 000 и повече поддържани връзки. Фигурата на пула за връзки, поддържана от MySQL, е по-малка.
  • За да разберем показателите за производителност на тези две бази данни, ще трябва да разгледаме скоростта им на репликация. MariaDB се репликира много по-бързо от MySQL.
  •  Отворената наличност на MySQL Community Edition за общността на RDBMS не го прави напълно отворен код поради наличието на някакъв собствен код, който дефинира Enterprise Edition на това приложение за база данни. От друга страна, MariaDB е напълно отворен код.
  • Поддръжката на MySQL за динамични колони и маскиране на данни е предимство пред MariaDB.
  • По отношение на скоростта на изпълнение можем да обобщим, че MariaDB надхитри MySQL по отношение на скоростта.

Основни разлики между MariaDB и MySQL  

  • По отношение на поддръжката на сървърни операционни системи за тези два софтуера за системи за управление на бази данни, OS X е единствената, която липсва в списъка на MariaDB, но присъства в MySQL.
  • В MySQL липсват новите функции и разширения на MariaDB като изрази KILL, WITH и JSON.
  • За всяка функция, предадена в корпоративното издание на MySQL, MariaDB намира комфорт в алтернативни плъгини с отворен код.
  • MariaDB защитава собственото си съдържание чрез приоритетен код със затворен код. Enterprise Edition на MySQL също използва известен собствен код, за да защити съдържанието си.
  • MariaDB не поддържа маскиране на данни. Тази поддръжка е очевидна в MySQL.
  • MySQL поддържа динамични колони, докато MariaDB не.
  • MariaDB извършва наблюдение на база данни чрез SQLyog, докато MySQL постига същата цел чрез MySQL Workbench.
  • MariaDB обработва маршрутизирането чрез MariaDB MaxScale. MySQL прави същото чрез MySQL рутер.
  • MariaDB ColumnStore обработва анализите на MariaDB. Тази функция липсва в MySQL.
  • Вторичният модел на база данни се приписва от Document Store и Graph DBMS в MariaDB. MySQL се приписва само на Document Store.
  • MariaDB има нарастващи 2,8 K Github звезди, докато MySQL води с 4 K Github звезди.
  • Наскоро записаният форк на MariaDB беше 868, докато MySQL води с 1,6 K разклонения.

MySQL срещу MariaDB Предимства и недостатъци

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

Защо да използвате MySQL?

Две факторни точки точно подчертават и обобщават полезността на MySQL като система за управление на релационна база данни.

  • Неговата поддръжка за множество механизми за съхранение е непрекъсната, за разлика от системите с поддръжка на единична система за съхранение като SQL сървърите.
  • Споменатата по-горе поддръжка на множество двигатели за съхранение прави MySQL високоефективна система за управление на релационни бази данни. Въпреки това, основен принос за безупречната му производителност е простотата на дизайна на RDBMS.

Защо да използвате MariaDB?

  • Той работи под лицензите BSD, GPL и LGPL.
  • Неговата поддръжка за SQL като стандартен език за заявки е валидна.
  • Той е опакован с многобройни и високоефективни двигатели за съхранение. Тези машини за съхранение са мащабируеми и се интегрират добре с алтернативни системи за управление на релационни бази данни.
  • Идва с напредъка на технологията Galera Cluster.
  • За уеб разработчиците, MariaDB се синхронизира добре с популярността на езика за програмиране PHP.

Недостатъци на MySQL

  • Мащабирането на тази RDBMS не е лесна задача.
  • Не е напълно разширим до MySQL общността поради ограничения от неговия собственик, Oracle.
  •  Дизайнът и показателите за производителност не са подходящи за работа с големи данни.
  • Замъглено е от клиентските приложения, поради което не се вижда.
  • Сървърът на базата данни може лесно да претърпи голямо натоварване от тригери.

Недостатъци на MariaDB

  • Тъй като MariaDB все още е ново лице в общността на базата данни, много потребители все още са скептични относно пълното му внедряване и използване.
  • Свободата на MariaDB като множество безплатни машини за бази данни предполага, че поддръжката на потребителите ще трябва да има цена.

Последна бележка  

Известни компании, свързани с MariaDB, включват Grooveshark, Accenture, Docplanner и Nrise. Що се отнася до MySQL, имаме Dropbox, Uber Technologies, Netflix и Airbnb. Историята между тези две системи за управление на релационни бази данни ги тласка да произвеждат най-добрите версии на себе си за своите потребителски общности.

Няма съмнение, че производителността и епичните характеристики на MariaDB го правят сила, с която трябва да се съобразяват в общността на RDBMS. Освен това някои от неговите удобни функции са жизнеспособни в MySQL. И накрая, богатата на функции природа на MariaDB го прави изключителна първична бекенд база данни.

Ако вече използвате лиценз за оракул, все още сте в безопасност под MySQL. Въпреки това, MariaDB се препоръчва за потребители и предприятия, които започват да изследват хоризонтите на системите за управление на релационни бази данни. Ще имате повече възможности за разглеждане без никакви ценови етикети. Ако разбирате напълно MySQL, тогава преминаването към MariaDB лесно ще разкрие диференциращите фактори, които може да се наложи да вземете под внимание. Успех в избора на вашата идеална система за управление на релационна база данни.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете сумата на MySQL колоната в PHP

  2. Връзка между каталог, схема, потребител и екземпляр на базата данни

  3. Предотвратяване на автоматично увеличение на InnoDB НА ДУПЛИКАТ КЛЮЧ

  4. Използвайте MySQL релационни бази данни във Fedora 13

  5. CodeIgniter:Не може да се свърже с вашия сървър на база данни чрез предоставените настройки Съобщение за грешка