PostgreSQL vs MySQL: Vad är skillnaden?

Innehållsförteckning:

Anonim

Vad är MySQL?

MYSQL är ett populärt och allmänt använt DBMS-system. Namnet är hämtat från flicknamnet My som är dotter till grundaren Michael Widenius. Källkoden för MYSQL är tillgänglig under GNU GPL. Projektet ägs och underhålls av Oracle Corporation.

Det är ett RDBMS (Relational Database Management System) och fungerar främst på relationsdatabasmodellen. Det gör databasadministrationen enklare och mer flexibel.

Vad är PostgreSQL?

Postgre är ett objektrelationellt databashanteringssystem (ORDBMS). Det utvecklades vid datavetenskapliga avdelningen vid University of California. Postgres var banbrytande i många koncept.

Postgre är ett relationsdatabassystem i Enterprise-klass. Det är enkelt att installera och installera. Det erbjuder stöd för SQL och NoSQL. Det har en fantastisk gemenskap som gärna tjänar dig när du står inför problem när du använder PostgreSQL.

I den här handledningen lär du dig mer om -

  • MySQL: s historia
  • Historia av PostgreSQL
  • Varför använda MySQL?
  • Varför använda PostgreSQL?
  • Funktioner i MySQL
  • Funktioner i PostgreSQL
  • Viktiga skillnader mellan MySQL och PostgreSQL
  • Nackdelar med att använda MySQL
  • Nackdelar med att använda PostgreSQL
  • Vilket är bättre?

MySQL: s historia

  • MySQL skapades av ett svenskt företag som heter MySQL AB 1995
  • Sun förvärvade MySQL AB för 1 miljard dollar år 2008
  • Oracle köpte Sun 2010 och förvärvade därmed MySQL
  • År 2012 delades MySQL in i MariaDB av grundaren Michael Widenius under företaget Monty Program Ab
  • MariaDB ersätter MySQL för de flesta distributioner år 2013
  • Monty Program Ab slogs samman med SkySQL-2013
  • SkySQL Ab bytt namn till MariaDB Corporation- 2014

Historia av PostgreSQL

  • INGRES utvecklades 1977
  • Michael Stonebraker och hans kollegor utvecklade Postgres- 1986
  • Stöd för riktig ACID och PL / pgSQL - 1990
  • Släpptes som Postgres95 -1995
  • Re-släppte Postgres95 som PostgreSQL 6.0 - 1996
  • MVCC, GUC, Join syntax Controls and Procedural Language Loader added - 1998-2001
  • Version 7.2 till 8.2: Inkluderade funktioner som schemastöd, icke blockerande VACUUM, roller och dblink - 2002-2006
  • PostgreSQL 8.4 släpptes 2009
  • PostgreSQL 9.0 släpptes 2010
  • NYCPUG (New York City PostgreSQL User Group) ansluter sig till PgUS (United States PostgreSQL association) - 2013
  • PGconf organiserad 2014

NYCKELSKILD:

  • PostgreSQL är ett Object Relational Database Management System (ORDBMS) medan MySQL är ett community driven DBMS-system.
  • PostgreSQL stöder moderna applikationer som JSON, XML etc. medan MySQL endast stöder JSON.
  • PostgreSQL-prestanda bra vid exekvering av komplexa frågor medan MySQL presterar bra i OLAP- och OLTP-system.
  • PostgreSQL är fullständigt ACID-kompatibelt medan MySQL endast är ACID-kompatibelt när det används med InnoDB och NDB.
  • PostgreSQL stöder materialiserade vyer medan MySQL stöder inte materialiserade vyer.

Varför använda MySQL?

Här är några viktiga skäl för att använda MYSQL:

  • Stöder funktioner som Master-Slave Replication, Scale-Out
  • Den stöder avlastningsrapportering, geografisk datadistribution etc.
  • Mycket låg overhead med MyISAM-lagringsmotor när den används för läs-mest-applikationer
  • Stöd för minneslagringsmotor för ofta använda tabeller
  • Frågecache för uttalanden som används flera gånger
  • Du kan enkelt lära dig och felsöka MySQL från olika källor som bloggar, vitböcker och böcker

Varför använda PostgreSQL?

Huvudskälen till att använda PostgreSQL är:

  • Erbjuder användbara funktioner som tabellpartitionering, Point in Time Recovery, Transactional DDL, etc.
  • Möjlighet att använda nyckelbutiker från tredje part i en fullständig PKI-infrastruktur
  • Utvecklare kan ändra öppen källkod eftersom den är licensierad under BSD utan att behöva bidra med förbättringar av ryggen
  • Oberoende programvaruleverantörer kan omfördela det utan rädslan för att "smittas" av en öppen källkodslicens
  • Användare och roller kan tilldelas behörigheter på objektnivå
  • Stöder AES, 3DES och andra datakrypteringsalgoritmer.

Funktioner i MySQL

  • MySQL är ett community-driven DBMS-system
  • Kompatibel med olika plattformar som använder alla större språk och mellanprogram
  • Det erbjuder stöd för flera versioners samtidighetskontroll
  • Uppfyller ANSI SQL-standarden
  • Tillåter loggbaserad och trigger-baserad replikering SSL
  • Objektorienterad och ANSI-SQL2008-kompatibel
  • Flerskiktad design med oberoende moduler
  • Helt flertrådad med kärntrådar
  • Server tillgänglig i inbäddad DB eller klientservermodell
  • Erbjuder inbyggda verktyg för frågeanalys och rymdanalys
  • Den kan hantera vilken mängd data som helst, upp till så mycket som 50 miljoner rader eller mer
  • MySQL körs på många varianter av UNIX, liksom på andra icke-UNIX-system som Windows och OS / 2

Funktioner i PostgreSQL

  • En aktiv gemenskap som påskyndar sin utveckling
  • Vanligaste alternativet till Oracle, DB2 och SQL Server
  • Körs på alla större OS-plattformar som du kan ha
  • MVCC stöder ett stort antal samtidiga användare
  • Omfattande indexering för högpresterande rapportering
  • Stöd för moderna applikationer (XML och JSON)
  • ANSI SQL-stöd för transportabel kompetens / kod
  • Stöd för främmande nycklar för effektiv lagring av data
  • Tabellfogar och vyer för flexibel datainhämtning
  • Utlösare / lagrade procedurer för komplexa program och transaktioner
  • Replikering för säkerhetskopiering av data och läsbarhet

Skillnader mellan MySQL och PostgreSQL

Parameter MYSQL PostgreSQL
Öppen källa MySQL-projektet har gjort sin källkod tillgänglig under villkoren i GNU General Public License. PostgreSQL släpps under PostgreSQL-licensen som är gratis Open Source-licens. Detta liknar BSD & MIT-licenser.
Syraöverensstämmelse MySQL är endast ACID-kompatibelt när det används med InnoDB- och NDB Cluster Storage-motorer. PostgreSQL är fullständigt ACID-kompatibelt.
SQL-kompatibel MySQL är delvis SQL-kompatibel. Det stöder till exempel inte kontrollbegränsning. PostgreSQL är till stor del SQL-kompatibelt.
Gemenskapsstöd Den har en stor grupp av bidragsgivare som fokuserar främst på att behålla befintliga funktioner med nya funktioner som dyker upp ibland. Aktiv community förbättrar ständigt befintliga funktioner medan dess innovativa community strävar efter att se till att den förblir den mest avancerade databasen. Nya banbrytande funktioner och säkerhetsförbättringar släpps regelbundet.
Prestanda Det används mest för webbaserade projekt som behöver en databas för enkla datatransaktioner. Det används mycket i stora system där läs- och skrivhastigheter är viktiga
Bäst lämpad MySQL fungerar bra i OLAP- och OLTP-system när endast läshastigheter behövs. PostgreSQL-prestanda bra när du kör komplexa frågor.
Stöd för JSON MySQL har stöd för JSON-datatyp men stöder inte någon annan NoSQL-funktion. Stöd JSON och andra NoSQL-funktioner som native XML-stöd. Det tillåter också indexering av JSON-data för snabbare åtkomst.
Stöd för materialiserade vyer Stöder materialiserade vyer och tillfälliga tabeller. Stöder tillfälliga tabeller men erbjuder inte materialiserade vyer.
Ekosystem MySQL har ett dynamiskt ekosystem med varianter som MariaDB, Percona, Galera, etc. Postgres har haft begränsade avancerade alternativ. Det förändras dock med nya funktioner som introducerades i den senaste versionen.
Ursprungliga värden Standardvärdena kan skrivas över på sessionsnivå och uttalande Standardvärdena kan endast ändras på systemnivå
B-trädindex Två eller flera B-trädindex kan användas när det är lämpligt. B-trädindex som slås samman vid körning för att utvärdera är dynamiskt omvandlade predikat.
Objektstatistik Ganska bra objektstatistik Mycket bra objektstatistik
Stack Overflow frågor 532K 89.3K
Gå med i möjligheter Begränsa anslutningsfunktionerna Bra anslutningsmöjligheter
GitHub stjärnor 3.34k 5,6 k
Gafflar 1,6k 2,4k
Framstående företag som använder produkten Airbnb, Uber, Twitter Netflix, Instagram, Groupon

Nackdelar med att använda MySQL

  • Transaktioner relaterade till systemkatalogen är inte ACID-kompatibla
  • Någon tid En serverkrasch kan skada systemkatalogen
  • Ingen pluggbar autentiseringsmodul som förhindrar centralt hanterat konto
  • Inget stöd för roller så det är svårt att behålla behörigheter för många användare
  • Lagrade procedurer kan inte cachas
  • Tabeller som används för proceduren eller utlösaren är alltid förlåsta

Nackdelar med att använda PostgreSQL

  • De nuvarande externa lösningarna kräver en hög inlärningskurva
  • Ingen uppgraderingsanläggning för större utgåvor
  • Data måste exporteras eller replikeras till den nya versionen
  • Dubbel lagring behövs under uppgraderingsprocessen
  • index kan inte användas för att direkt returnera resultaten av en fråga
  • Frågekörningsplaner cachelagras inte
  • Bulkbelastningsoperationer kan bli CPU-bundna
  • Sparse Independent Software Vendor support

Vilket är bättre?

Efter att ha jämfört båda kan vi säga att MySQL har gjort ett bra jobb med att förbättra sig för att hålla sig relevant, men på andra sidan för PostgreSQL behöver du ingen licensiering. Det erbjuder även tabellarv, regler, anpassade datatyper och databashändelser. Så det kantar verkligen över MySQL.