Š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.