Iată cum să alegi baza de date relațională potrivită pentru următorul tău proiect.

MySQL și PostgreSQL sunt primele două surse de baze de date pe care Fivetran le reproduce în depozitele de date pentru analiza datelor. Nu este surprinzător – sunt, de asemenea, primele două baze de date relaționale cu sursă deschisă, care servesc drept back-end pentru nenumărate aplicații comerciale, cu sursă deschisă și interne.
Postgres (cum este adesea cunoscut) și MySQL există ambele de mult timp. Ambele sunt RDBMS-uri securizate cu suport pentru clustering și toleranță la erori de rețea. Dar pentru tot ce au în comun, PostgreSQL și MySQL au o serie de caracteristici care le deosebesc unul de celălalt, așa cum vom vedea în cele ce urmeaza.

Dar mai întâi, un pic de istorie.
Istoricul bazei de date
La început era cuvântul, iar cuvântul era Ingres. Ingres a fost unul dintre primele sisteme de gestionare a bazelor de date relaționale, pornind ca proiect la UC Berkeley în 1973. A fost lansat sub o licență Berkeley Source Distribution (BSD) , care l-a făcut software open source și a devenit baza pentru multe companii comerciale. produse de baze de date. Povestea lui Ingres și a tuturor bazelor de date care au apărut din ea este fascinantă, dar mai ales pentru că și-a împrumutat (o parte din) numele unei alte baze de date open source.
Unul dintre dezvoltatorii originali ai Ingres s-a întors la Berkeley în 1985 (după ce a fondat o companie care a comercializat Ingres) pentru a dezvolta un succesor al lui Ingres pe care l-a numit Postgres. Numele a fost schimbat oficial în PostgreSQL pentru a profita de referința la Structured Query Language, dar proiectul folosește ambele nume. Prima lansare de producție, PostgreSQL 6.0, a apărut în 1997. Acum, la versiunea 14 (beta), Postgres este dezvoltat de o „asociație neafiliata de voluntari și companii care partajează cod în conformitate cu licența PostgreSQL” .
PostgreSQL nu era singura opțiune pentru o bază de date open source în secolul al XX-lea. Anii ’90 a fost o “epoca de aur” pentru bazele de date relaționale. În Suedia, Michael „Monty” Widenius și asociații au început să-și dezvolte propriul RDBMS, denumit MySQL , în 1994. MySQL este acum la versiunea 8.0 și este lansat atât sub licența publică GNU versiunea 2 (GPLv2), cât și sub licența proprietară.
Spre deosebire de PostgreSQL, MySQL a fost întotdeauna sub control corporatist. Dezvoltatorul original MySQL AB a fost achiziționat de Sun Microsystems în 2008, cu puțin timp înainte ca Sun să fie achiziționat de Oracle în 2010. În ziua în care a fost anunțată achiziția Oracle, Widenius a transformat MySQL și a fondat MariaDB Corp. controlul unei corporații sinonim cu un concurent de baze de date comerciale. ( MySQL a fost numit după fiica lui Widenius, My. MariaDB este numit după cealaltă fiică a lui.)

Comparând Postgres cu MySQL

Niciuna dintre poveștile despre origine nu va deveni un film de succes în curând, dar oricare dintre bazele de date ar putea fi un super-erou pentru organizația ta. Care este alegerea mai bună? Răspunsul depinde de nevoile dvs. specifice aplicației din infrastructura de date back-end. Să comparăm cele mai populare două baze de date — MySQL și PostgreSQL — într-o serie de nevoi diferite ale aplicațiilor, mai întâi în acest tabel și apoi mai în profunzime în textul următor.

  PostgreSQL MySQL
Arhitectură Relațional obiect; multiproces Relațional; un singur proces
Tipuri de date acceptate Numeric, dată/ora, caracter, boolean, enumerat, geometric, adresă de rețea, JSON, XML, HSTORE, matrice, intervale, compozit Numeric, dată/ora, caracter, spațial, detalii JSON
Indici acceptați B-tree, hash, GiST, SP-GiST, GIN și BRIN În primul rând, arborele B; R-tree, hash și indici inversați pentru anumite tipuri de date
Performanţă Potrivit pentru aplicații cu volum mare de citire și scriere Potrivit pentru aplicații cu volum mare de citiri
Securitate Control acces, mai multe opțiuni de conectare criptate Control acces, conexiuni criptate
A sustine Sprijin comunitar. Companiile care au propria ediție a PostgreSQL pot oferi asistență în jurul acestuia. Asistență comunitară, plus contracte de asistență furnizate de furnizor

Arhitectură

PostgreSQL este o bază de date obiect-relațională, în timp ce MySQL este pur relațională. Aceasta înseamnă că PostgreSQL oferă tipuri de date mai complexe și permite obiectelor să moștenească proprietăți, dar face și lucrul cu PostgreSQL mai complex.

PostgreSQL are un singur motor de stocare compatibil cu ACID . MySQL are suport pentru 16 motoare de stocare diferite, potrivite pentru diferite cazuri de utilizare. Motorul de stocare implicit, InnoDB, oferă tabele organizate pe index.

PostgreSQL generează un nou proces de sistem cu propria sa alocare de memorie pentru fiecare conexiune client pe care o stabilește, așa că necesită multă memorie pe sistemele cu un număr mare de conexiuni client. MySQL folosește un singur proces și menține un fir de execuție (sau cale de execuție) per conexiune, care funcționează bine pentru majoritatea aplicațiilor cu un domeniu mai mic decât cel al întreprinderii.

Trei caracteristici comune ale bazei de date sunt vizualizările, declanșatoarele și procedurile stocate. PostgreSQL are vizualizări mai robuste și acceptă vizualizări materializate, care pot îmbunătăți performanța pentru interogări complexe.

Ambele baze de date acceptă declanșatoarele AFTER și BEFORE pentru instrucțiunile SQL INSERT, UPDATE și DELETE; PostgreSQL oferă, de asemenea, un declanșator INSTEAD OF și poate executa instrucțiuni SQL complexe într-un declanșator folosind funcții. Ambele baze de date acceptă proceduri stocate SQL standard, dar PostgreSQL oferă în plus posibilitatea de a apela proceduri scrise în alte limbi decât SQL.

Tipuri de date

Postgres oferă o varietate mai mare de tipuri de date decât MySQL. Dacă aplicația dvs. se ocupă cu oricare dintre tipurile de date unice pe care le are disponibile sau cu date nestructurate, PostgreSQL poate fi o alegere mai bună. Dacă utilizați doar tipuri de date de bază caractere și numerice, ambele baze de date vi se potrivesc.

Indici

Bazele de date folosesc indexuri pentru a accelera interogările. Cu mai multe opțiuni de indexare din care să alegeți, vă puteți regla performanța bazei de date pe măsură ce datele dvs. cresc, pentru a obține răspunsuri mai rapide la interogări din baza de date și o experiență de utilizator îmbunătățită pentru utilizatorii aplicației dvs.

Securitate

Ambele baze de date acceptă gestionarea utilizatorilor și a grupurilor și acordarea de privilegii SQL rolurilor. PostgreSQL acceptă filtrarea și autentificarea clienților bazate pe IP folosind PAM și Kerberos, în timp ce MySQL acceptă PAM, servicii Windows native și LDAP pentru autentificarea utilizatorilor. În ceea ce privește securitatea, cele două baze de date au opțiuni comparabile.

Suport și documentare

Puteți judeca singur documentația disponibilă a fiecărui furnizor, deoarece le puteți găsi pe fiecare online. Postgres, deoarece nu este dezvoltat de o companie, nu are ingineri de asistență, dar forumurile sale de asistență comunitară sunt neobișnuit de bune. MySQL oferă forumuri similare, precum și planuri de asistență plătite pe care le puteți cumpăra de la Oracle.

PostgreSQL vs. MySQL: care este mai bun?

Dacă dezvoltați o aplicație cu o bază de date back-end, pe care dintre cele două ar trebui să utilizați? Luați în considerare PostgreSQL pentru orice aplicație care ar putea crește la nivelul întreprinderii, cu interogări complexe și operațiuni de scriere frecvente. Dacă sunteți nou în lumea bazelor de date și nu vă așteptați ca aplicația dvs. să se extindă sau sunteți în căutarea unui instrument rapid pentru prototipare, atunci luați în considerare MySQL.

Aceasta este o regulă de bază bună, dar există și alte considerații. Furnizorul dvs. de platformă cloud ar putea oferi beneficii atunci când vine vorba de rularea unei baze de date față de cealaltă, sau cadrul de aplicație pe care îl utilizați ar putea fi mai potrivit pentru una, sau colegii dvs. dezvoltatori pot avea păreri. MySQL este utilizat mai pe scară largă decât PostgreSQL, ceea ce înseamnă că mai mulți dezvoltatori și DBA sunt familiarizați cu acesta și mai multe instrumente terțe sunt disponibile pentru acesta.

Și, desigur, Postgres și MySQL nu sunt singurele voastre două opțiuni pentru baze de date, sau chiar singurele voastre două opțiuni pentru bazele de date open source.

Extragerea datelor bazei de date pentru BI

Unde joacă PostgreSQL și MySQL în lumea analizei datelor? Ambele sunt baze de date operaționale, destinate procesării tranzacțiilor și nu analizei.

Pentru a obține o vedere completă la 360 de grade a afacerii dvs., ar trebui să extrageți date tranzacționale din baza de date PostgreSQL sau MySQL și să le introduceți într-un depozit de date , unde pot fi folosite pentru a vă alimenta instrumentele de analiză a datelor și de business intelligence (BI) precum Tablou. și Looker. Aici vă putem ajuta – conductele noastre automate, fără întreținere, vă permit să extrageți date nu numai din baze de date, ci și din aplicații, fișiere și evenimente, apoi să le încărcați în siguranță în depozitul dvs. de date.

Extragerea, sincronizarea și integrarea datelor într-o întreprindere este o problemă complexă care necesită efort serios pentru a fi corectă. Alăturați-vă nouă pentru o demonstrație și aflați cum să vă aduceți diferitele seturi de date într-un singur depozit, accelerându-vă capacitatea de a debloca informații utile și de a crește veniturile de top.