PostgreSQL vs MySQL: Hvad er forskellen?

Indholdsfortegnelse:

Anonim

Hvad er MySQL?

MYSQL er et populært og udbredt DBMS-system. Navnet er taget fra pigenavnet My, der er datter af medstifteren Michael Widenius. Kildekoden til MYSQL er tilgængelig under GNU GPL. Projektet ejes og vedligeholdes af Oracle Corporation.

Det er et RDBMS (Relational Database Management System) og arbejder primært på relationsdatabasemodellen. Det gør databaseadministration nemmere og mere fleksibel.

Hvad er PostgreSQL?

Postgre er et objektrelationelt databasestyringssystem (ORDBMS). Det blev udviklet ved datalogisk afdeling i University of California. Postgres var banebrydende for mange koncepter.

Postgre er et relationsdatabasesystem i Enterprise-klasse. Det er let at opsætte og installere. Det tilbyder support til SQL og NoSQL. Det har et godt samfund, der gerne vil tjene dig, når du står over for problemer, mens du bruger PostgreSQL.

I denne vejledning lærer du mere om -

  • MySQLs historie
  • Historie af PostgreSQL
  • Hvorfor bruge MySQL?
  • Hvorfor bruge PostgreSQL?
  • Funktioner i MySQL
  • Funktioner i PostgreSQL
  • Nøgleforskelle mellem MySQL og PostgreSQL
  • Ulemper ved at bruge MySQL
  • Ulemper ved at bruge PostgreSQL
  • Hvad er bedre?

MySQLs historie

  • MySQL blev oprettet af et svensk firma kaldet MySQL AB 1995
  • Sun erhvervede MySQL AB for 1 milliard dollars i året 2008
  • Oracle købte Sun i 2010 og erhvervede dermed MySQL
  • I 2012 blev MySQL forkædet til MariaDB af grundlægger Michael Widenius under firmaet Monty Program Ab
  • MariaDB erstatter MySQL for de fleste distributioner i år 2013
  • Monty Program Ab fusioneret med SkySQL-2013
  • SkySQL Ab omdøbt til MariaDB Corporation- 2014

Historie af PostgreSQL

  • INGRES blev udviklet i 1977
  • Michael Stonebraker og hans kolleger udviklede Postgres- 1986
  • Støtte til ægte ACID og PL / pgSQL - 1990
  • Udgivet som Postgres95 i -1995
  • Genudgivet Postgres95 som PostgreSQL 6.0 - 1996
  • MVCC, GUC, Join syntax Controls and Procedural Language Loader tilføjet - 1998-2001
  • Version 7.2 til 8.2: Inkluderede funktioner som skemaunderstøttelse, ikke-blokering af VACUUM, roller og dblink - 2002-2006
  • PostgreSQL 8.4 udgivet i 2009
  • PostgreSQL 9.0 udgivet i 2010
  • NYCPUG (New York City PostgreSQL User Group) slutter sig til PgUS (United States PostgreSQL association) - 2013
  • PGconf organiseret-2014

Nøgleforskel:

  • PostgreSQL er et Object Relational Database Management System (ORDBMS), mens MySQL er et community-drevet DBMS-system.
  • PostgreSQL understøtter moderne applikationer som JSON, XML osv., Mens MySQL kun understøtter JSON.
  • PostgreSQL-ydelse godt ved udførelse af komplekse forespørgsler, mens MySQL fungerer godt i OLAP- og OLTP-systemer.
  • PostgreSQL er komplet ACID-kompatibel, mens MySQL kun er ACID-kompatibel, når det bruges med InnoDB og NDB.
  • PostgreSQL understøtter materialiserede visninger, mens MySQL ikke understøtter materialiserede visninger.

Hvorfor bruge MySQL?

Her er nogle vigtige grunde til at bruge MYSQL:

  • Understøtter funktioner som Master-Slave Replication, Scale-Out
  • Det understøtter rapportering om offload, distribution af geografiske data osv.
  • Meget lavt overhead med MyISAM-lagringsmotor, når det bruges til mest læste applikationer
  • Understøttelse af hukommelseslagermotor til ofte anvendte tabeller
  • Forespørgselscache til gentagne gange anvendte udsagn
  • Du kan nemt lære og fejlfinde MySQL fra forskellige kilder som blogs, hvidbøger og bøger

Hvorfor bruge PostgreSQL?

Hovedårsagerne til brugen af ​​PostgreSQL er:

  • Tilbyder nyttige funktioner som tabelpartitionering, Point in Time Recovery, Transactional DDL osv.
  • Evne til at bruge tredjeparts nøglebutikker i en fuld PKI-infrastruktur
  • Udviklere kan ændre open source-kode, da den er licenseret under BSD uden behov for at bidrage med forbedringer af ryggen
  • Uafhængige softwareleverandører kan omfordele det uden frygt for at blive "inficeret" af en open source-licens
  • Brugere og roller kan tildeles privilegier på objektniveau
  • Understøtter AES, 3DES og andre datakrypteringsalgoritmer.

Funktioner i MySQL

  • MySQL er et community-drevet DBMS-system
  • Kompatibel med forskellige platforme, der bruger alle større sprog og middleware
  • Det tilbyder support til multi-version samtidighedskontrol
  • Overholder ANSI SQL-standarden
  • Tillader logbaseret og triggerbaseret replikering SSL
  • Objektorienteret og ANSI-SQL2008-kompatibel
  • Flerlags design med uafhængige moduler
  • Fuldt multi-threaded ved hjælp af kernetråde
  • Server tilgængelig i integreret DB- eller klientservermodel
  • Tilbyder indbyggede værktøjer til forespørgselsanalyse og rumanalyse
  • Det kan håndtere ethvert datamængde, op til så meget som 50 millioner rækker eller mere
  • MySQL kører på mange varianter af UNIX såvel som på andre ikke-UNIX-systemer som Windows og OS / 2

Funktioner i PostgreSQL

  • Et aktivt samfund, der fremskynder sin udvikling
  • Mest almindelige alternativ til Oracle, DB2 og SQL Server
  • Kører på alle større OS-platforme, som du måske har
  • MVCC understøtter et stort antal samtidige brugere
  • Omfattende indeksering til højtydende rapportering
  • Understøttelse af moderne applikationer (XML og JSON)
  • ANSI SQL support til transportable færdigheder / kode
  • Udenlandske nøgler understøtter effektiv lagring af data
  • Tabel sammenføjninger og visninger for fleksibel datahentning
  • Udløsere / lagrede procedurer til komplekse programmer og transaktioner
  • Replikering til sikkerhedskopiering af data og skalerbarhed

Forskelle mellem MySQL og PostgreSQL

Parameter MYSQL PostgreSQL
Open Source MySQL-projektet har gjort sin kildekode tilgængelig under betingelserne i GNU General Public License. PostgreSQL frigives under PostgreSQL-licensen, som er gratis Open Source-licens. Dette svarer til BSD & MIT-licenser.
Syreoverholdelse MySQL er kun ACID-kompatibel, når den bruges med InnoDB og NDB Cluster Storage-motorer. PostgreSQL er komplet ACID-kompatibel.
SQL-kompatibel MySQL er delvist SQL-kompatibel. For eksempel understøtter det ikke kontrolbegrænsning. PostgreSQL er stort set SQL-kompatibel.
Community Support Det har et stort samfund af bidragydere, der primært fokuserer på at vedligeholde eksisterende funktioner med nye funktioner, der lejlighedsvis dukker op. Aktivt samfund forbedrer konstant eksisterende funktioner, mens dets innovative samfund stræber efter at sikre, at det forbliver den mest avancerede database. Nye banebrydende funktioner og sikkerhedsforbedringer udgives regelmæssigt.
Ydeevne Det bruges mest til webbaserede projekter, der har brug for en database til ligetil datatransaktioner. Det bruges meget i store systemer, hvor læse- og skrivehastigheder er vigtige
Bedst egnet MySQL klarer sig godt i OLAP & OLTP-systemer, når der kun er brug for læsehastigheder. PostgreSQL-ydeevne godt ved udførelse af komplekse forespørgsler.
Support til JSON MySQL har JSON-datatypesupport, men understøtter ikke nogen anden NoSQL-funktion. Understøtter JSON og andre NoSQL-funktioner som native XML-support. Det tillader også indeksering af JSON-data for hurtigere adgang.
Støtte til materialiserede synspunkter Understøtter materialiserede visninger og midlertidige tabeller. Understøtter midlertidige tabeller, men tilbyder ikke materialiserede visninger.
Økosystem MySQL har et dynamisk økosystem med varianter som MariaDB, Percona, Galera osv. Postgres har haft begrænsede avancerede muligheder. Det ændrer sig imidlertid med nye funktioner introduceret i den nyeste version.
Standardværdier Standardværdierne kan overskrives på sessionsniveau og sætningsniveau Standardværdierne kan kun ændres på systemniveau
B-træindekser To eller flere B-træindekser kan bruges, når det er passende. B-træindeks, der er flettet ved kørsel for at evaluere, er dynamisk konverterede prædikater.
Objektstatistikker Temmelig god objektstatistik Meget god objektstatistik
Stack Overflow spørgsmål 532K 89,3K
Deltag i kapaciteter Begræns tilslutningsfunktioner Gode ​​tilslutningsmuligheder
GitHub Stars 3.34k 5.6k
Gafler 1,6k 2,4k
Fremtrædende virksomheder, der bruger produktet Airbnb, Uber, Twitter Netflix, Instagram, Groupon

Ulemper ved at bruge MySQL

  • Transaktioner relateret til systemkatalog er ikke ACID-kompatible
  • Længe et servernedbrud kan ødelægge systemkataloget
  • Intet stikbart godkendelsesmodul, der forhindrer en administreret konto
  • Ingen støtte til roller, så det er svært at opretholde privilegier for mange brugere
  • Gemte procedurer kan ikke caches
  • Tabeller, der bruges til proceduren eller udløseren, er altid forlåst

Ulemper ved at bruge PostgreSQL

  • De nuværende eksterne løsninger kræver en høj læringskurve
  • Ingen opgraderingsfacilitet til større udgivelser
  • Dataene skal eksporteres eller replikeres til den nye version
  • Dobbelt opbevaring er nødvendig under opgraderingsprocessen
  • indekser kan ikke bruges til direkte at returnere resultaterne af en forespørgsel
  • Planer for udførelse af forespørgsler cachelagres ikke
  • Masseindlæsningsoperationer kan blive CPU-bundet
  • Sparse uafhængig softwareleverandørsupport

Hvad er bedre?

Efter at have sammenlignet begge kan vi sige, at MySQL har gjort et godt stykke arbejde med at forbedre sig selv for at være relevant, men på den anden side for PostgreSQL behøver du ingen licens. Det tilbyder også tabelarv, regelsystemer, brugerdefinerede datatyper og databasehændelser. Så det kanter bestemt over MySQL.