Ce versiune MySQL să alegeți? (Programare, Mysql)

Drew a intrebat.

După cum majoritatea dintre voi știți, Sun a achiziționat MySQL (și mai târziu Oracle a achiziționat Sun), iar în timpul acestor achiziții, au existat multe FUD-uri în comunitatea MySQL, care au dus la crearea de diverse furci.

Astăzi avem MySQL de la MySQL, Percona (XtraDB) MySQL, OurDelta MySQL, MariaDB, Drizzle, pentru a numi doar câteva. Ceea ce ne aduce la sursa problemei.

Suntem în proces de actualizare a bazelor noastre de date (hardware/software) și aș vrea să știu cu care dintre aceste furci ar trebui să merg. Fiecare are propriul set de argumente pro/contra. În prezent, folosim MySQL 5.0.x de la MySQL/Linux pe o mașină cu 8 nuclee. Noul nostru hardware este un monstru cu 32 de nuclee și 32GB de memorie care se conectează la un sistem de stocare NetApp rapid prin FC.

Aș dori să rămân la MySQL de la MySQL, dar am auzit povești de groază despre cât de prost se comportă MySQL 5.1 pe multe nuclee. Am auzit, de asemenea, că MySQL 5.4 se comportă mai bine pe mașini cu mai multe nuclee, dar încă nu este pregătit pentru producție. În plus, am auzit și multe lucruri bune despre construcțiile Percona.

Asta este ceea ce știu până acum:

MySQL 5.1 de la MySQL: O alegere fiabilă, dar nu se scalează bine pe o mașină mare

Percona: Scalează bine, companie bună de susținere. Nu am prea multă experiență cu ea

MariaDB: Nu știu prea multe despre el, în afară de faptul că a fost fondat de dezvoltatorii originali MySQL (inclusiv Monty).

OurDelta: Nu știu prea multe.

Drizzle: În mare parte optimizat pentru cloud computing

Aș dori să știu care este noțiunea generală despre această problemă. Cu ce build/versiune ar trebui să merg? Voi cum vă alegeți build-urile/versiunile?

Vă mulțumim!

7 răspunsuri
Morgan Tocker

Toate „furcile” pe care le-ați menționat (cu excepția Drizzle) se bazează pe versiuni oficiale mai noi ale MySQL. Cred că cuvântul „fork” vă poate duce pe o cale greșită – deoarece intenția este doar de a oferi modificări după piață. Am scris despre acest lucru aici:

http://mtocker.livejournal.com/50931.html

Din moment ce se face re-bază din MySQL, iar MySQL 5.0 este în „întreținere extinsă”, doar vulnerabilitățile majore vor fi corectate. Acest lucru înseamnă că ar trebui să vă mutați la 5.1. Dacă lucrăm cu această presupunere, atunci OurDelta este eliminată din deciziile dumneavoastră – deoarece ei sunt doar partenerii de construcție/ambalare a MariaDB 5.1.

Cred că puteți exclude și Drizzle, deoarece este în prezent pre-beta. Ei plănuiesc o versiune beta până la sfârșitul verii – dar este încă mult mai devreme decât ceea ce vă doriți. Chiar nu cred că folosiți o bază de date care nu este pregătită pentru producție, așa că acest lucru exclude și MySQL 5.5.

Rămân deci Percona Server, Official MySQL 5.1 și MariaDB. Este adevărat că 5.1 are o scalabilitate cam slabă cu multe nuclee, dar dacă activați pluginul InnoDB este mai bun.

Restul răspunsului meu de aici încolo este părtinitor – lucrez pentru Percona:

Percona XtraDB are corecții suplimentare de scalabilitate CPU decât MySQL 5.1+ pluginul InnoDB. Cele care vor conta sunt acoperite aici:

http://www.percona.com/docs/wiki/percona-xtradb:features:start

Una pe care o pot comenta în mod special și care va conta este aceasta:http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_split_buf_pool_mutex

Comentarii

  • Este amuzant pentru că exact asta este exact ceea ce am ajuns să decidem cu ajutorul lui Aurimas (de la Percona). Suntem un client fericit. Continuați să faceți treabă bună. Mulțumesc, Drew –  > Por Drew.
  • Morgan Mă gândesc să încerc Percona pe Windows, dar nu văd nicio descărcare pentru Windows. Lansați Percona doar pentru Linux? –  > Por runxc1 Bret Ferrier.
  • Nu mai lucrez pentru Percona 😉 Politica lor oficială este „contactați Departamentul de vânzări pentru a discuta”. percona.com/mysql-support/policies/supported-platforms –  > Por Morgan Tocker.
  • Ați ratat MariaDB… care este în esență upstream al MySQL acum. Monty și echipajul merg înainte și fac un mai bună MySQL mai bun, fiind în același timp compatibil cu trecutul, astfel încât MariaDB să poată trece peste instalarea MySQL. –  > Por Randal Schwartz.
  • Cred că a numi MariaDB „upstream-ul MySQL” este puțin cam optimist. Oracle a lucrat mult la MySQL 5.6 – și nu acceptă contribuții de la Monty. Nu am ratat MariaDB – am spus „așa rămân oficial mysql, percona server și mariadb”, apoi am oferit un motiv specific pentru Percona Server. –  > Por Morgan Tocker.
outcassed

Personal, cred că toți cei care trebuie să configureze astăzi o nouă instalare MySQL ar trebui să folosească MariaDB. MariaDB se bazează pe cea mai recentă versiune MySQL 5.1, întreținută în mod activ (inclusiv corecții pentru bug-urile raportate împotriva MySQL) și pachete Percona XtraDB / InnoDB plugin.

Nici măcar nu știu dacă „furculiță” descrie cu exactitate Maria, din moment ce se angajează să țină pasul cu versiunile actuale ale MySQL.

Pe scurt: MariaDB 5.1 = MySQL 5.1 + Percona XtraDB + patch-uri suplimentare utile + dezvoltare și întreținere activă

Actualizare la sfârșitul anului 2011- mai 2012: Am trecut de la MariaDB la Percona Server pentru a ajunge la MySQL 5.5, dar intenționez să mă întorc înapoi odată ce echipa Maria va avea o versiune stabilă bazată pe 5.5. Cred că toți cei care trebuie să configureze astăzi o nouă instalare MySQL ar trebui să ruleze Percona Server. Dacă utilizați SSDs, *trebuie* să rulați Percona Server.

2013-2018: Ați rulat cu plăcere Percona server 5.6 în tot acest timp.

2018: am făcut upgrade la Percona server 5.7 și apoi, aproape imediat, la MySQL 8.0. [ În acest moment, nu am suficiente cunoștințe pentru a vorbi despre diferențele dintre MySQL 8, Percona Server 5.7 și MariaDB 10 și nu pot spune de ce ați dori să alegeți unul în detrimentul celorlalți ].

Comentarii

  • Doh. Credeam că sunt pe Serverfault. Cum a ajuns întrebarea asta aici, oricum? 😉 –  > Por outcassed.
Drew

Doar o actualizare în acest sens. Am ales să mergem cu Percona și nu putem fi mai fericiți. Băieții de la Percona cu siguranță își cunosc lucrurile și țin pasul cu noile tehnologii. Doar verificați http://www.mysqlperformanceblog.com/ Un software de top plus oameni de top și un suport excelent, nu poți da greș.

Joshua Partogi

Folosiți MariaDB. Ei au tocmai au lansat o versiune în ultima vreme. Motorul Maria este, de asemenea, mult mai bun decât MyISAM. Cu un proiect opensource, te duci acolo unde se duce fondatorul.

Comentarii

  • Cred că vă confundați aici. MariaDB este o bifurcație a MySQL. Maria este un motor de stocare care este o versiune mai bună a MyISAM, dar care nu este încă stabilă: askmonty.org/wiki/Rename_Maria –  > Por Morgan Tocker.
  • Doar pentru că un produs nu este stabil != OP este „confuz”. –  > Por NiCk Newman.
  • Răspunsul a fost editat. Acesta spunea: „MariaDB este un motor de stocare…” –  > Por Morgan Tocker.
Cerin

Cred că este încă prea devreme pentru a renunța complet la MySQL. Nu sunt entuziasmat de faptul că Sun/Oracle a preluat frâiele, dar nu am o idee clară despre direcția pe care o vor lua cu el. Indiferent de asta, eu aș mai aștepta încă un an înainte de a mă gândi serios să trec la un fork. Timpul va spune ce proiect are resursele și motivația necesare pentru a supraviețui sau dacă o bifurcație este chiar necesară.

Zak

Google are un patch pentru biblioteca de memorie care se presupune că îmbunătățește performanța pe instalațiile mysql multi-thread / core. Se presupune că blocajul de performanță se afla în rutinele de alocare a memoriei și că s-ar manifesta începând cu 4 nuclee. În prezent, eu folosesc o cutie dual proc cu 4 nuclee fiecare și nu am probleme cu 5.1.x fără patch-ul pentru biblioteca de memorie.

Cea mai mare sugestie pe care v-o dau ar fi să instalați 5.4 și să rulați o suită de teste de referință pe baza acesteia. Dacă își face treaba, mergeți pe ea. Fragmentarea diverselor furci este nașpa, dar poate că va fi mai bine așa. Cel puțin fondatorii au acum bani pentru a-și finanța propria direcție… Totuși, nu aș urma sfatul de a-i urma orbește… A fost nevoie de mult timp și efort pentru a configura inițial infrastructura mysql și, deși nu ar strica să sprijiniți echipa care a făcut-o prima dată, nu există nicio garanție că vor reuși a doua oară. Așa că… sprijiniți-i, dar nu vă bazați pe ei până când nu știți că puteți te poți baza pe ei.

einpoklum

Dacă oricum vă actualizați bazele de date, ar trebui să luați în considerare și alte SGBD-uri FOSS, sau sisteme software de gestionare a datelor, nu doar MySQL.

De exemplu, dacă volumul de lucru al bazei de date este mai mult analitică decât tranzacții, iar datele sunt adăugate în mare parte în loturi, ar trebui să luați în considerare utilizarea de MonetDB, un SGBD columnar care este cu aproximativ 1,5-2 ordine de mărime mai rapid decât MySQL atunci când se face doar analiză.

O altă opțiune este PostgreSQL. Acesta este mai orientat spre tranzacții – ca și MySQL; de fapt, ele sunt similare îndeajuns de asemănătoare pentru a fi competitori. Există argumente pentru a prefera PostgreSQL și argumente pentru a prefera o variantă MySQL.

Pe DB-engines.com puteți găsi și alte SGBD-uri potențial relevante, FOSS și cu sursă închisă/comerciale.

Tags: