Wat is MySQL?
MYSQL is een populair en veel gebruikt DBMS-systeem. De naam is ontleend aan de meisjesnaam My die de dochter is van de mede-oprichter Michael Widenius. De broncode van MYSQL is beschikbaar onder de GNU GPL. Het project is eigendom van en wordt onderhouden door Oracle Corporation.
Het is een RDBMS (Relational Database Management System) en werkt voornamelijk op het relationele databasemodel. Het maakt databasebeheer eenvoudiger en flexibeler.
Wat is PostgreSQL?
Postgre is een object-relationeel databasebeheersysteem (ORDBMS). Het is ontwikkeld op de afdeling Computerwetenschappen van de Universiteit van Californië. Postgres heeft veel concepten bedacht.
Postgre is een relationeel databasesysteem van ondernemingsklasse. Het is gemakkelijk in te stellen en te installeren. Het biedt ondersteuning voor SQL en NoSQL. Het heeft een geweldige community die u graag van dienst is als u problemen ondervindt tijdens het gebruik van PostgreSQL.
In deze tutorial leer je meer over -
- Geschiedenis van MySQL
- Geschiedenis van PostgreSQL
- Waarom MySQL gebruiken?
- Waarom PostgreSQL gebruiken?
- Kenmerken van MySQL
- Kenmerken van PostgreSQL
- Belangrijkste verschillen tussen MySQL en PostgreSQL
- Nadelen van het gebruik van MySQL
- Nadelen van het gebruik van PostgreSQL
- Wat is beter?
Geschiedenis van MySQL
- MySQL is gemaakt door een Zweeds bedrijf genaamd MySQL AB 1995
- Sun kocht MySQL AB in 2008 voor 1 miljard dollar
- Oracle kocht Sun in 2010 en verwierf daarmee MySQL
- In 2012 werd MySQL opgenomen in MariaDB door oprichter Michael Widenius onder het bedrijf Monty Program Ab
- MariaDB vervangt MySQL voor de meeste distributies in het jaar 2013
- Monty Program Ab fuseerde met SkySQL - 2013
- SkySQL Ab hernoemd naar MariaDB Corporation - 2014
Geschiedenis van PostgreSQL
- INGRES is ontwikkeld in 1977
- Michael Stonebraker en zijn collega's ontwikkelden Postgres-1986
- Ondersteuning voor echt ACID en PL / pgSQL - 1990
- Uitgebracht als Postgres95 in -1995
- Postgres95 opnieuw uitgebracht als PostgreSQL 6.0 - 1996
- MVCC, GUC, Join syntax Controls en Procedural Language Loader toegevoegd - 1998-2001
- Versie 7.2 tot 8.2: Inbegrepen functies zoals Schema-ondersteuning, Nonblocking VACUUM, Rollen en dblink - 2002-2006
- PostgreSQL 8.4 uitgebracht in 2009
- PostgreSQL 9.0 uitgebracht in 2010
- NYCPUG (New York City PostgreSQL User Group) sluit zich aan bij PgUS (United States PostgreSQL Association) - 2013
- PGconf georganiseerd - 2014
BELANGRIJKSTE VERSCHIL:
- PostgreSQL is een Object Relational Database Management System (ORDBMS), terwijl MySQL een gemeenschapsgestuurd DBMS-systeem is.
- PostgreSQL ondersteunt moderne toepassingsfuncties zoals JSON, XML etc. terwijl MySQL alleen JSON ondersteunt.
- PostgreSQL presteert goed bij het uitvoeren van complexe query's, terwijl MySQL het goed doet in OLAP- en OLTP-systemen.
- PostgreSQL is volledig ACID-compatibel, terwijl MySQL alleen ACID-compatibel is bij gebruik met InnoDB en NDB.
- PostgreSQL ondersteunt gematerialiseerde weergaven, terwijl MySQL geen gematerialiseerde weergaven ondersteunt.
Waarom MySQL gebruiken?
Hier zijn enkele belangrijke redenen om MYSQL te gebruiken:
- Ondersteunt functies zoals Master-Slave Replication, Scale-Out
- Het ondersteunt offload-rapportage, geografische datadistributie, enz.
- Zeer lage overhead met MyISAM-opslagengine bij gebruik voor toepassingen die voornamelijk lezen
- Ondersteuning voor geheugenopslag-engine voor veelgebruikte tabellen
- Querycache voor herhaaldelijk gebruikte instructies
- U kunt MySQL gemakkelijk leren kennen en problemen oplossen vanuit verschillende bronnen, zoals blogs, whitepapers en boeken
Waarom PostgreSQL gebruiken?
De belangrijkste redenen om PostgreSQL te gebruiken zijn:
- Biedt handige functies zoals tabelpartitionering, Point in Time Recovery, Transactionele DDL, enz.
- Mogelijkheid om Key Stores van derden te gebruiken in een volledige PKI-infrastructuur
- Ontwikkelaars kunnen open source-code wijzigen, aangezien deze onder BSD-licentie is gelicentieerd, zonder de noodzaak om verbeteringen bij te dragen
- Onafhankelijke softwareleveranciers kunnen het opnieuw distribueren zonder bang te hoeven zijn "geïnfecteerd" te worden door een open source-licentie
- Gebruikers en rollen kunnen privileges op objectniveau krijgen
- Ondersteunt AES, 3DES en andere gegevensversleutelingsalgoritmen.
Kenmerken van MySQL
- MySQL is een door de gemeenschap aangestuurd DBMS-systeem
- Compatibel met verschillende platforms die alle belangrijke talen en middleware gebruiken
- Het biedt ondersteuning voor gelijktijdige controle van meerdere versies
- Voldoet aan de ANSI SQL-standaard
- Staat log-gebaseerde en trigger-gebaseerde replicatie SSL toe
- Objectgeoriënteerd en ANSI-SQL2008-compatibel
- Meerlagig ontwerp met onafhankelijke modules
- Volledig multi-threaded, met behulp van Kernel Threads
- Server beschikbaar in embedded DB- of clientservermodel
- Biedt ingebouwde tools voor query-analyse en ruimte-analyse
- Het kan elke hoeveelheid gegevens verwerken, tot wel 50 miljoen rijen of meer
- MySQL draait op vele varianten van UNIX, maar ook op andere niet-UNIX-systemen zoals Windows en OS / 2
Kenmerken van PostgreSQL
- Een actieve gemeenschap die haar ontwikkeling versnelt
- Meest voorkomende alternatief voor Oracle, DB2 en SQL Server
- Draait op alle grote OS-platforms die u mogelijk heeft
- MVCC ondersteunt een groot aantal gelijktijdige gebruikers
- Uitgebreide indexering voor hoogwaardige rapportage
- Ondersteuning voor moderne applicaties (XML en JSON)
- ANSI SQL-ondersteuning voor verplaatsbare vaardigheden / code
- Ondersteuning van externe sleutels voor efficiënte opslag van gegevens
- Samenvoegingen en weergaven van tabellen voor het flexibel ophalen van gegevens
- Triggers / opgeslagen procedures voor complexe programma's en transacties
- Replicatie voor gegevensback-up en leesschaalbaarheid
Verschillen tussen MySQL en PostgreSQL
Parameter | MYSQL | PostgreSQL |
Open source | Het MySQL-project heeft zijn broncode beschikbaar gesteld onder de voorwaarden van de GNU General Public License. | PostgreSQL wordt vrijgegeven onder de PostgreSQL-licentie, wat een gratis Open Source-licentie is. Dit is vergelijkbaar met de BSD- en MIT-licenties. |
Zure compliantie | MySQL is alleen ACID-compatibel als het wordt gebruikt met InnoDB- en NDB Cluster Storage-engines. | PostgreSQL is volledig ACID-compatibel. |
SQL-compatibel | MySQL is gedeeltelijk SQL-compatibel. Het ondersteunt bijvoorbeeld geen controlebeperking. | PostgreSQL is grotendeels SQL-compatibel. |
Maatschappelijke hulp | Het heeft een grote gemeenschap van bijdragers die zich voornamelijk richten op het onderhouden van bestaande functies met af en toe nieuwe functies. | Actieve gemeenschap verbetert voortdurend zijn bestaande functies, terwijl de innovatieve gemeenschap ernaar streeft ervoor te zorgen dat het de meest geavanceerde database blijft. Er worden regelmatig nieuwe geavanceerde functies en beveiligingsverbeteringen uitgebracht. |
Prestatie | Het wordt meestal gebruikt voor webgebaseerde projecten die een database nodig hebben voor eenvoudige datatransacties. | Het wordt veel gebruikt in grote systemen waar lees- en schrijfsnelheden belangrijk zijn |
Best geschikt | MySQL presteert goed in OLAP- en OLTP-systemen wanneer alleen leessnelheden nodig zijn. | PostgreSQL-prestaties goed bij het uitvoeren van complexe query's. |
Ondersteuning voor JSON | MySQL heeft ondersteuning voor het JSON-gegevenstype, maar ondersteunt geen enkele andere NoSQL-functie. | Ondersteuning van JSON en andere NoSQL-functies zoals native XML-ondersteuning. Het maakt het ook mogelijk om JSON-gegevens te indexeren voor snellere toegang. |
Ondersteuning voor gematerialiseerde opvattingen | Ondersteunt gematerialiseerde weergaven en tijdelijke tabellen. | Ondersteunt tijdelijke tabellen, maar biedt geen gematerialiseerde weergaven. |
Ecosysteem | MySQL heeft een dynamisch ecosysteem met varianten als MariaDB, Percona, Galera, etc. | Postgres heeft beperkte high-end opties gehad. Het verandert echter met nieuwe functies die in de nieuwste versie zijn geïntroduceerd. |
Standaard waarden | De standaardwaarden kunnen worden overschreven op sessieniveau en op afschriftniveau | De standaardwaarden kunnen alleen op systeemniveau worden gewijzigd |
B-tree-indexen | Twee of meer B-tree-indexen kunnen worden gebruikt wanneer dat nodig is. | B-tree-indexen die tijdens runtime worden samengevoegd om te evalueren, zijn dynamisch geconverteerde predikaten. |
Object statistieken | Redelijk goede objectstatistieken | Zeer goede objectstatistieken |
Stack Overflow-vragen | 532K | 89.3K |
Mogelijkheden om mee te doen | Beperk de mogelijkheden voor deelname | Goede verbindingsmogelijkheden |
GitHub-sterren | 3,34 k | 5.6k |
Vorken | 1.6k | 2,4k |
Vooraanstaande bedrijven die het product gebruiken | Airbnb, Uber, Twitter | Netflix, Instagram, Groupon |
Nadelen van het gebruik van MySQL
- Transacties met betrekking tot de systeemcatalogus zijn niet ACID-compatibel
- Enige tijd Een servercrash kan de systeemcatalogus beschadigen
- Geen insteekbare authenticatiemodule die een centraal beheerde account verhindert
- Geen ondersteuning voor rollen, dus het is moeilijk om voor veel gebruikers rechten te behouden
- Opgeslagen procedures kunnen niet in het cachegeheugen worden opgeslagen
- Tabellen die voor de procedure of trigger worden gebruikt, zijn altijd vooraf vergrendeld
Nadelen van het gebruik van PostgreSQL
- De huidige externe oplossingen vragen om een hoge leercurve
- Geen upgrademogelijkheid voor grote releases
- De gegevens moeten worden geëxporteerd of gerepliceerd naar de nieuwe versie
- Dubbele opslag is nodig tijdens het upgradeproces
- indexen kunnen niet worden gebruikt om de resultaten van een query rechtstreeks te retourneren
- Plannen voor het uitvoeren van query's worden niet in de cache opgeslagen
- Bulklaadbewerkingen kunnen CPU-gebonden worden
- Schaarse ondersteuning van onafhankelijke softwareleveranciers
Wat is beter?
Nadat we beide hebben vergeleken, kunnen we zeggen dat MySQL zichzelf uitstekend heeft verbeterd om relevant te blijven, maar aan de andere kant heb je voor PostgreSQL geen licenties nodig. Het biedt ook het overnemen van tabellen, regelsystemen, aangepaste gegevenstypen en databasegebeurtenissen. Het steekt dus zeker boven MySQL uit.