Preskoči na vsebino
BeoHosting
BeoHosting
Tehnično

Kaj je MariaDB in zakaj je priljubljena

BeoHosting Ekipa··9 min branja branja
Kaj je MariaDB in zakaj je priljubljena

Uvod v MariaDB

MariaDB je odprtokodna relacijska podatkovna baza, ki je leta 2009 nastala kot vejitev (fork) MySQL-a. Ustvaril jo je Michael "Monty" Widenius, izvirni avtor MySQL-a, potem ko je Oracle kupil Sun Microsystems (lastnika MySQL-a). Monty je bil zaskrbljen, da bi Oracle lahko spremenil licenčni model MySQL-a ali upočasnil razvoj, zato je zagnal MariaDB kot skupnostno gnano alternativo, ki jamči, da bo ostala brezplačna in odprtokodna.

Od takrat je MariaDB iz preproste vejitve prerasla v samostojno podatkovno bazo s številnimi izboljšavami. Uporabljajo jo velikani, kot so Google, Wikipedia, Mozilla Foundation in Deutsche Telekom. Večina distribucij Linuxa (Fedora, Red Hat, Debian, Ubuntu, Arch Linux) je MySQL zamenjala z MariaDB kot privzeto podatkovno bazo. V industriji gostovanja je MariaDB postala standard na vodilnih nadzornih ploščah za gostovanje in strežnikih Plesk.

MariaDB v primerjavi z MySQL — ključne razlike

Združljivost

MariaDB je zasnovana kot "drop-in replacement" za MySQL — aplikacije, ki uporabljajo MySQL, lahko preidejo na MariaDB brez spreminjanja kode. MariaDB uporablja iste odjemalske protokole, iste ukaze SQL, iste konfiguracijske datoteke in ista orodja za upravljanje (ukazni odjemalec mysql, mysqldump za varnostne kopije). Do različice 10.5 je MariaDB ohranjala popolno binarno združljivost z MySQL-om. V novejših različicah obstajajo nekatere razlike v naprednih funkcionalnostih, a je za 99 % spletnih aplikacij (vključno z WordPressom) združljivost popolna.

Pogoni za shranjevanje (storage engines)

MariaDB podpira vse pogone za shranjevanje iz MySQL-a in še dodatne. Aria je MariaDB-ov izboljšani pogon MyISAM s podporo za okrevanje po sesutju — če strežnik pade, se tabele Aria samodejno obnovijo brez potrebe po popravljanju. ColumnStore je pogon, optimiran za analitične poizvedbe nad velikimi nabori podatkov (OLAP). Spider omogoča porazdeljene tabele prek več strežnikov. MyRocks (osnovan na Facebookovem RocksDB) ponuja boljšo kompresijo in zmogljivost pisanja za diske SSD. InnoDB ostaja privzeti pogon tudi v MariaDB, a z dodatnimi optimizacijami.

Zmogljivost

MariaDB v večini scenarijev na splošno kaže boljšo zmogljivost od MySQL-a. Thread pool (v MariaDB na voljo brezplačno, v MySQL Enterprise plačljivo) znatno izboljša zmogljivost pod visoko obremenitvijo, saj učinkoviteje upravlja veliko število sočasnih povezav. Optimizator poizvedb v MariaDB uporablja naprednejše strategije za operacije JOIN, podpoizvedbe in tabele z več indeksi. MariaDB InnoDB ima izboljšave pri upravljanju buffer poola in zapisovanju dnevnikov, ki privedejo do hitrejših operacij pisanja.

Licenciranje

MariaDB uporablja licenco GPLv2 in fundacija MariaDB Foundation jamči, da bo vedno ostala odprtokodna. MySQL ima dvojno licenciranje — Community Edition je GPLv2, Enterprise Edition z naprednimi funkcionalnostmi pa je komercialna. Nekatere funkcionalnosti, ki so v MariaDB brezplačne (thread pool, audit plugin, šifriranje v mirovanju), so v MySQL na voljo samo v plačljivi različici Enterprise. Za podjetja, ki želijo jamstvo o odprtokodnem statusu podatkovne baze, je MariaDB varnejša izbira.

Napredne funkcionalnosti MariaDB

Šifriranje v mirovanju (encryption at rest)

MariaDB brezplačno podpira transparentno šifriranje podatkov na disku (encryption at rest), medtem ko je ta funkcionalnost v MySQL na voljo samo v različici Enterprise. Šifriranje pokriva datoteke tablespace (InnoDB), dnevniške datoteke (redo log, undo log) in binarni dnevnik. To je pomembno za skladnost z GDPR in drugimi predpisi, ki zahtevajo zaščito podatkov v mirovanju. Konfiguracija zahteva le nastavitev vtičnika za upravljanje ključev in vklop šifriranja v konfiguraciji.

Galera Cluster

MariaDB Galera Cluster je sinhroni replikacijski sistem več gospodarjev (multi-master), ki omogoča branje in pisanje na poljubno vozlišče v gruči. Vsa vozlišča imajo v vsakem trenutku identične podatke, kar odpravlja težavo z replikacijskim zaostankom. Galera samodejno zazna padec vozlišča in preusmeri promet na preostala vozlišča. To je idealno za aplikacije, ki zahtevajo visoko razpoložljivost in odpornost na izpade brez kompromisov pri doslednosti podatkov.

Časovne tabele (Temporal Tables)

MariaDB podpira sistemsko verzionirane tabele (temporal tables), ki samodejno hranijo zgodovino vseh sprememb v tabeli. Vsaka vrstica ima obdobje veljavnosti in podatkovno bazo lahko poizvedete "kako so podatki izgledali v poljubnem trenutku v preteklosti". To je izjemno koristno za revizijske sledi, zahteve glede skladnosti, razhroščevanje podatkov in funkcionalnost razveljavitve. Namesto da bi sami implementirali sprožilce in tabele zgodovine, MariaDB to opravi transparentno na ravni pogona.

Podpora za JSON

MariaDB podpira podatkovni tip JSON in funkcije za delo z dokumenti JSON. Čeprav ima tudi MySQL podporo za JSON, je pristop MariaDB drugačen — v MariaDB je JSON vzdevek za LONGTEXT z validacijo JSON, medtem ko MySQL uporablja binarni format. Za večino spletnih aplikacij je razlika zanemarljiva, a pristop MariaDB olajša združljivost z orodji, ki pričakujejo besedilni format. Funkcije JSON (JSON_EXTRACT, JSON_SET, JSON_ARRAY) so na voljo v obeh bazah.

MariaDB in WordPress

Popolna združljivost

WordPress uradno podpira MariaDB od različice 10.1 (stran z zahtevami WordPress.org). V praksi WordPress na MariaDB deluje enako zanesljivo kot na MySQL, saj uporablja standardne operacije SQL, ki so v obeh bazah identične. WooCommerce, BuddyPress, bbPress in vsi priljubljeni vtičniki na MariaDB delujejo brez težav. Mnogi ponudniki WordPress gostovanja (vključno z velikimi igralci, kot so SiteGround, Cloudways in A2 Hosting) uporabljajo MariaDB namesto MySQL-a.

Zmogljivost z WordPressom

WordPress strani na MariaDB kažejo boljšo zmogljivost v več scenarijih. Kompleksne poizvedbe WP_Query z več pogoji meta_query izkoristijo optimizator MariaDB, ki bolje obvladuje podpoizvedbe. Spletne trgovine WooCommerce z velikim številom izdelkov in variacij imajo korist od boljših strategij JOIN. Strani z veliko sočasnimi uporabniki (člani, forum, e-trgovina) imajo korist od funkcionalnosti thread pool, ki preprečuje izčrpanje povezav pod obremenitvijo.

Priporočena različica

Za WordPress strani je priporočena MariaDB 10.6 LTS (Long Term Support) ali novejša. Različice LTS prejemajo varnostne posodobitve najmanj 5 let, kar je pomembno za produkcijske strani. MariaDB 10.11 je najnovejša različica LTS z izboljšavami pri zmogljivosti in varnosti. Na produkcijskih strežnikih se izogibajte različicam, ki niso LTS, saj imajo krajše obdobje podpore.

Migracija z MySQL na MariaDB

Postopek migracije

Migracija z MySQL na MariaDB je preprost postopek. Ustvarite celovito varnostno kopijo baze MySQL z orodjem mysqldump. Ustavite storitev MySQL. Namestite MariaDB (na večini distribucij Linuxa: apt install mariadb-server ali yum install mariadb-server). Namestitev MariaDB samodejno prevzame podatkovni imenik in konfiguracijo MySQL-a. Zaženite mysql_upgrade za posodobitev sistemskih tabel. Zaženite MariaDB in preverite, da aplikacija deluje normalno. Celoten postopek za tipičen spletni strežnik običajno traja manj kot 30 minut.

Možne težave

Migracija je na splošno neboleča, a obstaja nekaj možnih težav. Če uporabljate funkcionalnosti, specifične za MySQL, ki jih MariaDB ne podpira (pri spletnih aplikacijah redko), je potrebna sprememba kode. Razlike v privzetih vrednostih konfiguracije lahko zahtevajo prilagoditev datoteke my.cnf. MySQL 8.0 kot privzeti vtičnik za preverjanje pristnosti uporablja caching_sha2_password, MariaDB pa mysql_native_password — preverite združljivost odjemalcev. Varnostne kopije, ustvarjene z mysqldump iz MySQL 8.0, lahko pred uvozom v MariaDB zahtevajo manjše spremembe.

Vrnitev na MySQL

Če se iz kakršnega koli razloga želite vrniti na MySQL, je postopek podoben: varnostna kopija mysqldump iz MariaDB, namestitev MySQL-a, uvoz kopije. Vendar pa, če ste uporabljali funkcionalnosti, specifične za MariaDB (pogon Aria, časovne tabele, specifične razširitve SQL), te funkcionalnosti na MySQL ne bodo delovale in je potrebna sprememba.

Optimizacija MariaDB za spletno gostovanje

Ključne nastavitve

Za spletni strežnik z WordPress stranmi so najpomembnejše nastavitve velikost buffer poola InnoDB (za namenski strežnik nastavite na 50–70 % razpoložljivega RAM-a, za deljenega manj), max_connections (odvisno od števila strani in prometa, običajno 150–300), query_cache_type in query_cache_size (koristno za WordPress, a pazite na obremenitev z invalidacijo), tmp_table_size in max_heap_table_size (povečajte, če imate veliko kompleksnih poizvedb) ter innodb_log_file_size (večje dnevniške datoteke izboljšajo zmogljivost pisanja, a upočasnijo okrevanje po sesutju).

Spremljanje (monitoring)

Redno spremljanje podatkovne baze pomaga prepoznati težave, preden vplivajo na uporabnike. MySQLTuner je skript Perl, ki analizira konfiguracijo in predlaga optimizacije. MariaDB Enterprise Monitor in odprtokodna alternativa PMM (Percona Monitoring and Management) ponujata podrobne metrike o zmogljivosti poizvedb, porabi virov in replikaciji. Ukaza SHOW GLOBAL STATUS in SHOW PROCESSLIST dasta vpogled v trenutno stanje baze.

Pogosta vprašanja o MariaDB

  • Ali je MariaDB brezplačna? Da, MariaDB Community Server je popolnoma brezplačen in odprtokoden (GPLv2). Obstaja tudi MariaDB Enterprise s komercialno podporo in dodatnimi orodji.
  • Ali lahko z MariaDB uporabljam phpMyAdmin? Da, phpMyAdmin z MariaDB deluje enako kot z MySQL. Vse operacije (ustvarjanje baz, uvoz/izvoz, upravljanje uporabnikov) delujejo enako.
  • Ali je MariaDB varnejša od MySQL? MariaDB ima nekatere varnostne funkcionalnosti brezplačno (šifriranje v mirovanju, audit plugin), ki so v MySQL na voljo samo v različici Enterprise. Obe bazi sta varni, kadar sta pravilno konfigurirani.
  • Kateri ponudniki gostovanja uporabljajo MariaDB? SiteGround, Cloudways, A2 Hosting, InterServer in večina ponudnikov gostovanja s cPanel uporablja MariaDB. BeoHosting prav tako uporablja MariaDB na vseh strežnikih.
  • Ali MariaDB podpira replikacijo? Da, MariaDB podpira replikacijo master-slave (združljivo z MySQL), Galera Cluster za sinhrono replikacijo več gospodarjev in pol-sinhrono replikacijo.

Zaključek

MariaDB je zrela, stabilna in zmogljiva podatkovna baza, ki je postala de facto standard v industriji gostovanja. Popolna združljivost z MySQL, brezplačne enterprise funkcionalnosti, boljša zmogljivost pod obremenitvijo in jamstvo o odprtokodnem statusu jo delajo odlično izbiro za spletne aplikacije vseh velikosti. Na naši platformi za gostovanje uporabljamo MariaDB na vseh strežnikih, saj zagotavlja najboljše razmerje med zmogljivostjo, zanesljivostjo in varnostjo za WordPress in druge spletne aplikacije naših strank.

BeoHosting Ekipa

10+ let izkušenj — Strokovnjaki za spletno gostovanje in infrastrukturo

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Zadnja posodobitev: