MariaDB împotriva MySQL

versiune de tipărit

Există destul de multe motive pentru a trece la MariaDB. Să vedem, așa că dacă acestea sunt bune pentru a vă convinge să o faci.

MariaDB - un fel de sursă MySQL. separați imediat după ce au început să apară îndoieli cu privire la ceea ce Oracle va face cu licențiere MySQL (MySQL a fost achiziționată de Sun. care în curând a fost cumpărat de Oracle în sine). Este o îndoială destul de rezonabil, despre care voi vorbi mai târziu. În plus față de rolul său de „versiune simplificată“ MySQL, MariaBD are, de asemenea, mai multe caracteristici noi, care, potrivit unora, o face mai bine MySQL.

Înainte de a vorbi în detaliu despre aceste caracteristici, vreau să vorbesc despre schema de numerotare pentru versiunile de MariaDB. În primul rând, versiunea sa se potrivește cu versiunea MySQL - deci, de exemplu, în MariaDB 5.1 utilizează același cod de bază ca și în MySQL 5.1. Ca actualizări și patch-uri pentru a adăuga MySQL la MariaDB copac sursă va fi, eventual adăugate, cum ar fi patch-uri (în teorie, face fuziune lunar cu codul MySQL). Dar, în cazul în care sunt în mod constant adaugă noi caracteristici unice și, se pare că menținerea acestui tip de coduri de egalitate a devenit un coșmar.

Echipa de dezvoltare MariaDB, trebuie să fie conștienți de acest lucru, așa că au decis să utilizeze schema nouă numerotare. Cel mai nou MariDB versiune (care este încă o versiune alpha) - Maria 10,0, urmată de numărul minor:

Oamenii care lucrează la MariaDB, da o explicație lungă și destul de lungă de ce au făcut - care încă mai dezamăgitoare unii dezvoltatori - dar asta este ceea ce este. Ele nu pot continua să adauge noi caracteristici și afirmă în mod constant că este accelerat, pe deplin compatibil cu versiunea MySQL.

Deci, pentru noile caracteristici? Să ne uităm la câteva dintre ele.

Una dintre caracteristicile unice este motorul MariaDB pentru a se conecta la versiunea de server de baze de date de Cassandra. Motorul în sine este pur și simplu un intermediar care se conectează la serverul Cassandra rulează separat. Cassandra - este un depozit de date NoSQL, care a fost creat inițial pentru Facebook. iar mai târziu a devenit proiectul Apache; deși poate fi utilizat în clustere cu nici un singur punct de eșec, nu este încă compatibil cu acid. În general, dacă intenționați să utilizați Cassandra ca backend, nu se așteaptă aceeași viteză de performanță, cum ar fi InnoDB sau ExtraBD.

Dar puteți accesa informațiile folosind MySQL, adăugând o interfață similară în SQL. precum și să permită un anumit grad de probă, insert, update, delete, chiar și aderarea. Cu toate acestea, echipa MariaDB utverzhaet că motorul Cassandra este mai bine să nu fie utilizate pentru ceva mai substanțial decât simpla utilizare a datelor.

Așa că această caracteristică poate fi utilă dacă sunteți. mm. lasă-mă să gândesc. Ei bine.

Dacă scrieți o aplicație software care necesită acces la datele din Cassandra este, atunci s-ar putea fi mai bine pentru a utiliza construit Cassandra API, mai degrabă decât MySQL. Eu cred că, dacă suferiți cu MySQL interfață linie de comandă, trebuie să luați unele date, Cassandra pot fi utile - dar dacă ai de gând să profite de acest lucru, nu este mai ușor să transpire pentru o linie de comandă interfață Cassandra?

Deci, eu nu sunt foarte sigur despre acest caz de utilizare, dar care este temperat entuziasmul pentru această funcție, în unele persoane din blogosferă.

Nu va fi prea mult pentru a spune despre el, pentru că ideea este aceeași cu cea din Cassandra: motorul este o interfață motor de calcul Deschideți Query Graph (un depozit pentru organizarea de grafice complexe). Acest lucru poate ajuta în unele aplicații specializate, cu toate că adaptarea structurii graficului în format SQL este la prima vedere un pic ciudat.

O îmbunătățire importantă, care face MariaDB mai puternic este utilizarea XtraDB ca înlocuirea accelerată a InnoDB. XtraDB dar adaugă noi caracteristici la scară, în care cererile de astăzi au nevoie - și aceasta este principala diferență. Oracle susține că MySQL scalează în prezent mai bine decât oricând înainte. Poate că acest lucru este adevărat, dar este bine ca și motorul. În cazul în care motorul nu scară, în practică, așa cum ar trebui, atunci MySQL nu o pot face mai bine.

Unul dintre principalele motive pentru a alege o bază de date relațională, mai degrabă decât de obicei NoSQL, este faptul că baza de date relațională este pe deplin compatibil cu acid. Pur și simplu pune, în cazul în care nu există nici o greșeală, nimeni nu vrea toate datele au dispărut. Și, deși greșelile calculatoarelor dezvoltatori - fenomenul nu este frecventă, acestea sunt încă au loc în mai multe centre IT. În acest moment, motorul standard de InnoDB / XtraDB pentru înregistrarea datelor folosind dublu tampon. pentru a asigura o intrare de date de succes, în caz de eșec. Orice ar fi fost, atunci când se lucrează cu dispozitive SSD de mare viteză (luați ca exemplu), dublu tampon poate afecta grav performanța fără oferindu-vă posibilitatea de a utiliza toată viteza SSD. Care este soluția? Puteți alege să profite de tampon și modul de înregistrare atomică (atomic scrie). Încercați pe propriul risc și este mai bine să nu producția.

Din nou, funcția este interesantă, dar nu suficient pentru a te convinge sa arunci trecerea la MySQL și MariaDB.


Comparând performanța MySQL și MariaDB

Una dintre cele mai comun rezultat de codificare incorectă este că observați câștigul de performanță atunci când se lucrează cu primele 8 sau 16 fire, atunci orice îmbunătățire nu va avea loc. Dacă aveți această problemă, este probabil cazul în algoritmii. Și acest lucru va fi cazul sau hiper-fire, sau firele de hardware. Aceasta este exact ceea ce observăm în referință MySQL. Pentru mine, aceasta înseamnă existența unor probleme cu exfolierea în MySQL, și este o ocazie de a reflecta. În același test în MariaDB observat, de asemenea, unele probleme, deoarece productivitatea a scăzut, dar numai ușor; Cred că nu se aplică algoritmi paraleli.

De asemenea, nu știu cât de bine unele versiuni potrivite pentru calculatoarele care au fost utilizate pentru test. Atunci când Intel cod de compilare, aveți nevoie de compilator pentru a genera dimensiunea SIMD-cod, potrivit pentru mașina țintă. În cazul nerespectării, nu veți obține performanța estimată a codului vectorizare dumneavoastră. Pentru a face acest lucru în mod corect, va trebui să îl inserați în pragma dorită, apoi în mod corect a scrie algoritmi de vectorizare, și în cele din urmă rula opțiunile de compilare corespunzătoare. Știu că pare o prostie, dar am văzut programul emis cu opțiunile greșite mai des decât crezi. În orice caz, MySQL codul net nu a fost optimizat pentru suport multi-core și vectorizare ca MariaDB.

Cele mai multe dintre toate, aș dori să văd o varietate sau MySQL sau MariaDB, compilate special pentru co-procesor Intel Xeon Phi, în cazul în care codul 61-core evacueazã coprotsessor, și cineva încearcă să elibereze toate 244 flux. Din păcate, nu am acces la o astfel de mașină. De asemenea, dacă doriți să aflați mai multe despre vectorizarea și codificare paralelă, citiți cele mai recente angajații Intel James Jeffers carte (James Jeffers) și James Rayndersa (James Reinders) „coprocesor de înaltă programare Intel Xeon Phi“.

articole similare