PostgreSQL vs MySQL: Hva er forskjellen?

Innholdsfortegnelse:

Anonim

Hva er MySQL?

MYSQL er et populært og mye brukt DBMS-system. Navnet er hentet fra pikenavnet My som er datter av medstifteren Michael Widenius. Kildekoden til MYSQL er tilgjengelig under GNU GPL. Prosjektet eies og vedlikeholdes av Oracle Corporation.

Det er et RDBMS (Relational Database Management System) og fungerer primært på relasjonsdatabasemodellen. Det gjør databaseadministrasjon enklere og mer fleksibel.

Hva er PostgreSQL?

Postgre er et objektrelasjonelt databasestyringssystem (ORDBMS). Den ble utviklet ved informatikkavdelingen ved University of California. Postgres var banebrytende for mange konsepter.

Postgre er et relasjonelt databasesystem i Enterprise-klasse. Det er enkelt å installere og installere. Den tilbyr støtte for SQL og NoSQL. Det har et flott samfunn som gjerne vil tjene deg når du står overfor problemer mens du bruker PostgreSQL.

I denne veiledningen vil du lære mer om -

  • Historien om MySQL
  • Historien om PostgreSQL
  • Hvorfor bruke MySQL?
  • Hvorfor bruke PostgreSQL?
  • Funksjoner av MySQL
  • Funksjoner av PostgreSQL
  • Viktige forskjeller mellom MySQL og PostgreSQL
  • Ulemper ved å bruke MySQL
  • Ulemper ved å bruke PostgreSQL
  • Hva er bedre?

Historien om MySQL

  • MySQL ble opprettet av et svensk selskap kalt MySQL AB 1995
  • Sun kjøpte MySQL AB for 1 milliard dollar i 2008
  • Oracle kjøpte Sun i 2010 og kjøpte dermed MySQL
  • I 2012 ble MySQL forkjøpt inn i MariaDB av grunnlegger Michael Widenius under selskapet Monty Program Ab
  • MariaDB erstatter MySQL for de fleste distribusjoner i år 2013
  • Monty Program Ab fusjonerte med SkySQL- 2013
  • SkySQL Ab omdøpt til MariaDB Corporation - 2014

Historien om PostgreSQL

  • INGRES ble utviklet 1977
  • Michael Stonebraker og hans kolleger utviklet Postgres- 1986
  • Støtte for ekte ACID og PL / pgSQL - 1990
  • Utgitt som Postgres95 i -1995
  • Re-utgitt Postgres95 som PostgreSQL 6.0 - 1996
  • MVCC, GUC, Join syntax Controls and Procedural Language Loader lagt til - 1998-2001
  • Versjon 7.2 til 8.2: Inkluderte funksjoner som skjemastøtte, ikke-blokkerende VACUUM, roller og dblink - 2002-2006
  • PostgreSQL 8.4 utgitt i 2009
  • PostgreSQL 9.0 utgitt i 2010
  • NYCPUG (New York City PostgreSQL User Group) blir med i PgUS (United States PostgreSQL association) - 2013
  • PGconf organisert-2014

Nøkkelforskjell:

  • PostgreSQL er et Object Relational Database Management System (ORDBMS) mens MySQL er et fellesskapsdrevet DBMS-system.
  • PostgreSQL støtter moderne applikasjoner som JSON, XML etc. mens MySQL bare støtter JSON.
  • PostgreSQL-ytelse godt når du utfører komplekse spørsmål mens MySQL presterer godt i OLAP- og OLTP-systemer.
  • PostgreSQL er komplett ACID-kompatibel, mens MySQL bare er ACID-kompatibel når den brukes med InnoDB og NDB.
  • PostgreSQL støtter materialiserte visninger mens MySQL ikke støtter materialiserte visninger.

Hvorfor bruke MySQL?

Her er noen viktige grunner til å bruke MYSQL:

  • Støtter funksjoner som Master-Slave Replication, Scale-Out
  • Den støtter avlastningsrapportering, geografisk datadistribusjon, etc.
  • Svært lav overhead med MyISAM-lagringsmotor når den brukes til lesemessige applikasjoner
  • Støtte for minnelagringsmotor for ofte brukte tabeller
  • Query Cache for gjentatte ganger brukt uttalelser
  • Du kan enkelt lære og feilsøke MySQL fra forskjellige kilder som blogger, whitepapers og bøker

Hvorfor bruke PostgreSQL?

Hovedårsakene til å bruke PostgreSQL er:

  • Tilbyr nyttige funksjoner som tabellpartisjonering, Point in Time Recovery, Transactional DDL, etc.
  • Evne til å bruke tredjeparts nøkkelbutikker i en full PKI-infrastruktur
  • Utviklere kan endre åpen kildekode ettersom den er lisensiert under BSD uten å måtte bidra med forbedringer i ryggen
  • Uavhengige programvareleverandører kan distribuere den uten frykt for å bli "smittet" av en åpen kildekode-lisens
  • Brukere og roller kan tildeles privilegier på objektnivå
  • Støtter AES, 3DES og andre datakrypteringsalgoritmer.

Funksjoner av MySQL

  • MySQL er et fellesskapsdrevet DBMS-system
  • Kompatibel med forskjellige plattformer som bruker alle større språk og mellomvare
  • Den tilbyr støtte for multi-versjon samtidig kontroll
  • I samsvar med ANSI SQL-standarden
  • Tillater loggbasert og triggerbasert replikering SSL
  • Objektorientert og ANSI-SQL2008-kompatibel
  • Flerlags design med uavhengige moduler
  • Helt flertrådet, ved hjelp av kjernetråder
  • Server tilgjengelig i innebygd DB eller klientservermodell
  • Tilbyr innebygde verktøy for spørreanalyse og romanalyse
  • Den kan håndtere alle datamengder, opptil så mye som 50 millioner rader eller mer
  • MySQL kjører på mange varianter av UNIX, så vel som på andre ikke-UNIX-systemer som Windows og OS / 2

Funksjoner av PostgreSQL

  • Et aktivt samfunn som akselererer utviklingen
  • Det vanligste alternativet til Oracle, DB2 og SQL Server
  • Kjører på alle de viktigste OS-plattformene du kan ha
  • MVCC støtter et stort antall samtidige brukere
  • Omfattende indeksering for høyytelsesrapportering
  • Støtte for moderne applikasjoner (XML og JSON)
  • ANSI SQL-støtte for transportable ferdigheter / kode
  • Utenlandske nøkler støtter effektiv lagring av data
  • Tabell sammenføyninger og visninger for fleksibel datahenting
  • Utløsere / lagrede prosedyrer for komplekse programmer og transaksjoner
  • Replikering for sikkerhetskopiering av data og lesbarhet

Forskjeller mellom MySQL og PostgreSQL

Parameter MYSQL PostgreSQL
Åpen kilde MySQL-prosjektet har gjort kildekoden tilgjengelig under vilkårene i GNU General Public License. PostgreSQL er utgitt under PostgreSQL-lisensen som er gratis Open Source-lisens. Dette ligner på BSD & MIT-lisenser.
Syreoverholdelse MySQL er kun ACID-kompatibel når den brukes med InnoDB og NDB Cluster Storage-motorer. PostgreSQL er komplett ACID-kompatibel.
SQL-kompatibel MySQL er delvis SQL-kompatibel. For eksempel støtter den ikke kontrollbegrensning. PostgreSQL er stort sett SQL-kompatibel.
Samfunnsstøtte Den har et stort fellesskap av bidragsytere som fokuserer hovedsakelig på å vedlikeholde eksisterende funksjoner med nye funksjoner som dukker opp av og til. Aktivt fellesskap forbedrer stadig eksisterende funksjoner mens det innovative samfunnet prøver å sikre at det forblir den mest avanserte databasen. Nye banebrytende funksjoner og sikkerhetsforbedringer utgis regelmessig.
Opptreden Det brukes mest til nettbaserte prosjekter som trenger en database for enkle datatransaksjoner. Den brukes høyt i store systemer der lese- og skrivehastigheter er viktige
Best egnet MySQL fungerer bra i OLAP- og OLTP-systemer når bare lesehastigheter er nødvendig. PostgreSQL-ytelse godt når du utfører komplekse spørsmål.
Støtte for JSON MySQL har JSON-datatypestøtte, men støtter ikke noen annen NoSQL-funksjon. Støtter JSON og andre NoSQL-funksjoner som innfødt XML-støtte. Det tillater også indeksering av JSON-data for raskere tilgang.
Støtte for materialiserte synspunkter Støtter materialiserte visninger og midlertidige tabeller. Støtter midlertidige tabeller, men tilbyr ikke materialiserte visninger.
Økosystem MySQL har et dynamisk økosystem med varianter som MariaDB, Percona, Galera, etc. Postgres har hatt begrensede high-end-alternativer. Imidlertid er det i endring med nye funksjoner introdusert i den siste versjonen.
Standardverdier Standardverdiene kan overskrives på øktnivå og uttalelsesnivå Standardverdiene kan bare endres på systemnivå
B-treindekser To eller flere B-treindekser kan brukes når det er passende. B-treindekser slått sammen ved kjøretid for å evaluere er dynamisk konverterte predikater.
Objektstatistikk Ganske god objektstatistikk Veldig god objektstatistikk
Stack Overflow spørsmål 532K 89,3K
Bli med på evner Begrens muligheter for å delta Gode ​​sammenføyningsegenskaper
GitHub Stars 3.34k 5,6k
Gafler 1.6k 2,4k
Fremtredende selskaper som bruker produktet Airbnb, Uber, Twitter Netflix, Instagram, Groupon

Ulemper ved å bruke MySQL

  • Transaksjoner relatert til systemkatalogen er ikke ACID-kompatible
  • Noen tid Et serverkrasj kan ødelegge systemkatalogen
  • Ingen pluggbar autentiseringsmodul som forhindrer sentraladministrert konto
  • Ingen støtte for roller, så det er vanskelig å opprettholde privilegier for mange brukere
  • Lagrede prosedyrer kan ikke caches
  • Tabeller som brukes til prosedyren eller utløseren er alltid forhåndslåst

Ulemper ved å bruke PostgreSQL

  • De nåværende eksterne løsningene krever en høy læringskurve
  • Ingen oppgraderingsanlegg for store utgivelser
  • Dataene må eksporteres eller replikeres til den nye versjonen
  • Dobbel lagring er nødvendig under oppgraderingsprosessen
  • indekser kan ikke brukes til å returnere resultatene av et spørsmål direkte
  • Planer for utførelse av spørsmål blir ikke hurtigbufrede
  • Masselastingsoperasjoner kan bli CPU-bundet
  • Sparse Independent Software Vendor support

Hva er bedre?

Etter å ha sammenlignet begge kan vi si at MySQL har gjort en god jobb med å forbedre seg selv for å holde seg relevant, men på den andre siden for PostgreSQL trenger du ikke noen lisensiering. Det tilbyr også tabellarv, regelsystemer, tilpassede datatyper og databasehendelser. Så det kan absolutt være over MySQL.