PostgreSQL vs MySQL: Koja je razlika?

Sadržaj:

Anonim

Što je MySQL?

MYSQL je popularan i široko korišten sustav DBMS-a. Ime je preuzeto od imena djevojčice My koja je kćer suosnivača Michaela Wideniusa. Izvorni kod MYSQL-a dostupan je pod GNU GPL. Projekt je u vlasništvu i održava ga Oracle Corporation.

To je RDBMS (sustav upravljanja relacijskim bazama podataka) i prvenstveno radi na modelu relacijske baze podataka. To čini administraciju baza podataka lakšom i fleksibilnijom.

Što je PostgreSQL?

Postgre je objektno-relacijski sustav upravljanja bazama podataka (ORDBMS). Razvijen je na Odjelu za računalne znanosti na Sveučilištu u Kaliforniji. Postgres je pionir mnogih koncepata.

Postgre je sustav relacijske baze podataka klase Enterprise. Jednostavno je postaviti i instalirati. Nudi podršku za SQL i NoSQL. Ima sjajnu zajednicu koja će vam rado služiti kad se suočite s problemima dok koristite PostgreSQL.

U ovom vodiču naučit ćete više o -

  • Povijest MySQL-a
  • Povijest PostgreSQL-a
  • Zašto koristiti MySQL?
  • Zašto koristiti PostgreSQL?
  • Značajke MySQL-a
  • Značajke PostgreSQL-a
  • Ključne razlike između MySQL i PostgreSQL
  • Mane upotrebe MySQL-a
  • Mane upotrebe PostgreSQL-a
  • Što je bolje?

Povijest MySQL-a

  • MySQL je kreirala švedska tvrtka MySQL AB 1995
  • Sun je 2008. godine kupio MySQL AB za milijardu dolara
  • Oracle je 2010. kupio Sun i time stekao MySQL
  • 2012. godine MySQL je udružio MariaDB s osnivačem Michael Wideniusom pod tvrtkom Monty Program Ab
  • MariaDB zamjenjuje MySQL za većinu distribucija u 2013. godini
  • Monty Program Ab spojen sa SkySQL-2013
  • SkySQL Ab preimenovan u MariaDB Corporation - 2014

Povijest PostgreSQL-a

  • INGRES je razvijen-1977
  • Michael Stonebraker i njegovi kolege razvili su Postgres-1986
  • Podrška za stvarne ACID i PL / pgSQL - 1990
  • Objavljen kao Postgres95 -1995
  • Ponovno objavljen Postgres95 kao PostgreSQL 6.0 - 1996
  • MVCC, GUC, dodane sintaksne kontrole i dodan procesni jezični učitavač - 1998-2001
  • Verzija 7.2 do 8.2: Uključene značajke kao što su podrška za sheme, neblokirajući VACUUM, uloge i dblink - 2002-2006
  • PostgreSQL 8.4 objavljen 2009. godine
  • PostgreSQL 9.0 objavljen 2010. godine
  • NYCPUG (New York City PostgreSQL User Group) pridružio se PgUS-u (Udruga Sjedinjenih Država PostgreSQL) - 2013.
  • PGconf organiziran-2014

KLJUČNA RAZLIKA:

  • PostgreSQL je objektno-relacijski sustav upravljanja bazom podataka (ORDBMS), dok je MySQL DBMS sustav vođen zajednicom.
  • PostgreSQL podržava moderne značajke aplikacija poput JSON, XML itd., Dok MySQL podržava samo JSON.
  • PostgreSQL performanse dobro izvode složene upite, dok MySQL dobro izvodi u OLAP i OLTP sustavima.
  • PostgreSQL je u potpunosti u skladu s ACID-om, dok je MySQL u skladu s ACID-om samo kada se koristi s InnoDB i NDB.
  • PostgreSQL podržava materijalizirane poglede, dok MySQL ne podržava materijalizirane poglede.

Zašto koristiti MySQL?

Evo nekoliko važnih razloga za upotrebu MYSQL-a:

  • Podržava značajke poput Master-Slave replikacije, Scale-Out
  • Podržava izvještavanje o preopterećenju, distribuciju geografskih podataka itd.
  • Vrlo niski troškovi s MyISAM mehanizmom za pohranu kada se koristi za aplikacije uglavnom za čitanje
  • Podrška za mehanizam za pohranu memorije za često korištene tablice
  • Predmemorija upita za opetovano korištene izjave
  • MySQL možete lako naučiti i riješiti probleme iz različitih izvora poput blogova, tehničkih knjiga i knjiga

Zašto koristiti PostgreSQL?

Glavni razlozi za korištenje PostgreSQL-a su:

  • Nudi korisne značajke poput particioniranja tablice, oporavak točke u vremenu, transakcijski DDL itd.
  • Sposobnost korištenja prodavaonica ključeva treće strane u punoj PKI infrastrukturi
  • Programeri mogu izmijeniti otvoreni izvorni kod jer je licenciran pod BSD-om bez potrebe za povratnim poboljšanjima
  • Neovisni dobavljači softvera mogu ga distribuirati bez straha da će biti "zaraženi" licencom otvorenog koda
  • Korisnicima i ulogama mogu se dodijeliti povlastice na razini objekta
  • Podržava AES, 3DES i druge algoritme za šifriranje podataka.

Značajke MySQL-a

  • MySQL je DBMS sustav vođen zajednicom
  • Kompatibilan s raznim platformama koje koriste sve glavne jezike i međuopreme
  • Nudi podršku za kontrolu istovremenosti više verzija
  • U skladu s ANSI SQL standardom
  • Omogućuje SSL replikacije na temelju dnevnika i okidača
  • Objektno orijentiran i kompatibilan s ANSI-SQL2008
  • Višeslojni dizajn s neovisnim modulima
  • Potpuno višenitni, koristeći jezgrene niti
  • Poslužitelj dostupan u ugrađenom DB ili klijentskom poslužiteljskom modelu
  • Nudi ugrađene alate za analizu upita i analizu prostora
  • Može obraditi bilo koju količinu podataka, do čak 50 milijuna redaka ili više
  • MySQL radi na mnogim vrstama UNIX-a, kao i na drugim sustavima koji nisu UNIX-a poput Windows-a i OS / 2

Značajke PostgreSQL-a

  • Aktivna zajednica koja ubrzava svoj razvoj
  • Najčešća alternativa Oracleu, DB2 i SQL poslužitelju
  • Radi na svim glavnim OS platformama koje možda imate
  • MVCC podržava velik broj istovremenih korisnika
  • Opsežno indeksiranje za izvještavanje visokih performansi
  • Podrška za moderne aplikacije (XML i JSON)
  • ANSI SQL podrška za prenosive vještine / kod
  • Podrška stranih ključeva za učinkovito pohranjivanje podataka
  • Spajanja tablica i pogledi za fleksibilno pronalaženje podataka
  • Okidači / pohranjeni postupci za složene programe i transakcije
  • Replikacija za sigurnosnu kopiju podataka i skalabilnost čitanja

Razlike između MySQL-a i PostgreSQL-a

Parametar MYSQL PostgreSQL
Otvoreni izvor MySQL projekt učinio je svoj izvorni kod dostupnim pod uvjetima GNU General Public License. PostgreSQL je objavljen pod licencom PostgreSQL koja je besplatna Open Source licenca. To je slično BSD i MIT licencama.
Sukladnost s kiselinom MySQL je u skladu s ACID-om samo kada se koristi s InnoDB i NDB Cluster Storage mehanizmima. PostgreSQL je u potpunosti kompatibilan s ACID-om.
Sukladan sa SQL-om MySQL je djelomično usklađen s SQL-om. Na primjer, ne podržava ograničenje provjere. PostgreSQL je uglavnom sukladan SQL-u.
Podrška zajednice Ima veliku zajednicu suradnika koji se uglavnom fokusiraju na održavanje postojećih značajki s novim značajkama koje se pojavljuju povremeno. Aktivna zajednica neprestano poboljšava postojeće značajke, dok se njena inovativna zajednica trudi osigurati da ostane najnaprednija baza podataka. Redovito se objavljuju nove vrhunske značajke i sigurnosna poboljšanja.
Izvođenje Uglavnom se koristi za mrežne projekte kojima je potrebna baza podataka za jednostavne transakcije podataka. Vrlo se koristi u velikim sustavima gdje su brzine čitanja i pisanja važne
Najprikladnije MySQL se dobro izvodi u OLAP i OLTP sustavima kada su potrebne samo brzine čitanja. PostgreSQL performanse dobro pri izvršavanju složenih upita.
Podrška za JSON MySQL ima podršku za JSON tip podataka, ali ne podržava nijednu drugu NoSQL značajku. Podržava JSON i druge NoSQL značajke poput izvorne XML podrške. Omogućuje i indeksiranje JSON podataka za brži pristup.
Podrška materijaliziranim pogledima Podržava materijalizirane poglede i privremene tablice. Podržava privremene tablice, ali ne nudi materijalizirane poglede.
Ekosustav MySQL ima dinamični ekosustav s varijantama poput MariaDB, Percona, Galera itd. Postgres ima ograničene vrhunske mogućnosti. Međutim, mijenja se s novim značajkama predstavljenim u najnovijoj verziji.
Zadane vrijednosti Zadane vrijednosti mogu se prebrisati na razini sesije i na razini izjave Zadane vrijednosti mogu se mijenjati samo na razini sustava
Indeksi B-stabla Dva ili više indeksa B-stabla mogu se koristiti kada je to prikladno. Indeksi B-stabla spojeni tijekom izvođenja radi procjene dinamički su pretvoreni predikati.
Statistika predmeta Prilično dobra statistika predmeta Vrlo dobra statistika objekata
Stack Overflow pitanja 532.000 89,3 tis
Pridružite se mogućnostima Ograničite mogućnosti pridruživanja Dobre mogućnosti pridruživanja
GitHub zvijezde 3,34 tis 5,6 tis
Vilice 1,6 k 2,4 k
Istaknute tvrtke koje koriste proizvod Airbnb, Uber, Twitter Netflix, Instagram, Groupon

Mane upotrebe MySQL-a

  • Transakcije povezane s katalogom sustava nisu u skladu s ACID-om
  • Neko vrijeme rušenje poslužitelja može oštetiti sistemski katalog
  • Nema priključnog modula za provjeru autentičnosti koji sprječava centralno upravljani račun
  • Nema podrške za uloge pa je teško održavati privilegije za mnoge korisnike
  • Pohranjene procedure nisu u predmemoriji
  • Tablice koje se koriste za postupak ili okidač uvijek su unaprijed zaključane

Mane upotrebe PostgreSQL-a

  • Trenutna vanjska rješenja zahtijevaju visoku krivulju učenja
  • Nema mogućnosti nadogradnje za glavna izdanja
  • Podatke treba izvesti ili umnožiti u novu verziju
  • Tijekom postupka nadogradnje potrebna je dvostruka pohrana
  • indeksi se ne mogu koristiti za izravno vraćanje rezultata upita
  • Planovi izvršavanja upita nisu u predmemoriji
  • Operacije skupnog učitavanja mogu postati vezane za CPU
  • Podrška oskudnog neovisnog dobavljača softvera

Što je bolje?

Nakon usporedbe oba možemo reći da je MySQL napravio sjajan posao na poboljšanju kako bi ostao relevantan, ali s druge strane za PostgreSQL ne treba vam licenciranje. Također nudi nasljeđivanje tablice, sustave pravila, prilagođene vrste podataka i događaje baze podataka. Dakle, sigurno je iznad MySQL-a.