PostgreSQL vs MySQL: qual è la differenza?

Sommario:

Anonim

Cos'è MySQL?

MYSQL è un sistema DBMS popolare e ampiamente utilizzato. Il nome è preso dal nome della ragazza My che è la figlia del co-fondatore Michael Widenius. Il codice sorgente di MYSQL è disponibile sotto la GNU GPL. Il progetto è di proprietà e gestito da Oracle Corporation.

È un RDBMS (Relational Database Management System) e funziona principalmente sul modello di database relazionale. Rende l'amministrazione del database più semplice e flessibile.

Cos'è PostgreSQL?

Postgre è un sistema di gestione di database relazionali a oggetti (ORDBMS). È stato sviluppato presso il Dipartimento di Informatica dell'Università della California. Postgres ha aperto la strada a molti concetti.

Postgre è un sistema di database relazionale di classe Enterprise. È facile da configurare e installare. Offre supporto per SQL e NoSQL. Ha una grande comunità che è felice di servirti quando stai affrontando problemi durante l'utilizzo di PostgreSQL.

In questo tutorial imparerai di più su:

  • Storia di MySQL
  • Storia di PostgreSQL
  • Perché usare MySQL?
  • Perché usare PostgreSQL?
  • Caratteristiche di MySQL
  • Caratteristiche di PostgreSQL
  • Differenze chiave tra MySQL e PostgreSQL
  • Svantaggi dell'utilizzo di MySQL
  • Svantaggi dell'utilizzo di PostgreSQL
  • Cos'è meglio?

Storia di MySQL

  • MySQL è stato creato da una società svedese chiamata MySQL AB 1995
  • Sun ha acquisito MySQL AB per 1 miliardo di dollari nel 2008
  • Oracle ha acquistato Sun nel 2010 e quindi ha acquisito MySQL
  • Nel 2012, MySQL è stato convertito in MariaDB dal fondatore Michael Widenius sotto la società Monty Program Ab
  • MariaDB sostituisce MySQL per la maggior parte delle distribuzioni nell'anno 2013
  • Monty Program Ab si è fusa con SkySQL-2013
  • SkySQL Ab rinominato in MariaDB Corporation - 2014

Storia di PostgreSQL

  • INGRES è stato sviluppato nel 1977
  • Michael Stonebraker ei suoi colleghi hanno sviluppato Postgres-1986
  • Supporto per ACID reale e PL / pgSQL - 1990
  • Rilasciato come Postgres95 nel -1995
  • Postgres95 ripubblicato come PostgreSQL 6.0 - 1996
  • MVCC, GUC, Join syntax Controls e Procedural Language Loader aggiunti- 1998-2001
  • Versione da 7.2 a 8.2: funzionalità incluse come supporto Schema, VACUUM non bloccante, ruoli e dblink - 2002-2006
  • PostgreSQL 8.4 rilasciato nel 2009
  • PostgreSQL 9.0 rilasciato nel 2010
  • NYCPUG (New York City PostgreSQL User Group) entra a far parte di PgUS (associazione PostgreSQL degli Stati Uniti) - 2013
  • PGconf organizzato-2014

DIFFERENZA PRINCIPALE:

  • PostgreSQL è un ORDBMS (Object Relational Database Management System) mentre MySQL è un sistema DBMS guidato dalla comunità.
  • PostgreSQL supporta funzionalità di applicazioni moderne come JSON, XML ecc. Mentre MySQL supporta solo JSON.
  • Le prestazioni di PostgreSQL sono buone quando si eseguono query complesse, mentre MySQL funziona bene nei sistemi OLAP e OLTP.
  • PostgreSQL è completamente conforme ad ACID mentre MySQL è conforme ad ACID solo se utilizzato con InnoDB e NDB.
  • PostgreSQL supporta le viste materializzate mentre MySQL non supporta le viste materializzate.

Perché usare MySQL?

Ecco alcuni motivi importanti per l'utilizzo di MYSQL:

  • Supporta funzionalità come replica master-slave, scalabilità orizzontale
  • Supporta rapporti di offload, distribuzione dei dati geografici, ecc.
  • Overhead molto basso con il motore di archiviazione MyISAM quando viene utilizzato per applicazioni per lo più in lettura
  • Supporto per il motore di archiviazione della memoria per le tabelle utilizzate di frequente
  • Query Cache per istruzioni usate ripetutamente
  • Puoi facilmente apprendere e risolvere i problemi di MySQL da diverse fonti come blog, white paper e libri

Perché usare PostgreSQL?

I motivi principali per utilizzare PostgreSQL sono:

  • Offre funzioni utili come il partizionamento della tabella, il ripristino temporizzato, il DDL transazionale, ecc.
  • Possibilità di utilizzare Key Store di terze parti in un'infrastruttura PKI completa
  • Gli sviluppatori possono modificare il codice open source poiché è concesso in licenza con BSD senza la necessità di contribuire ai miglioramenti
  • I fornitori di software indipendenti possono ridistribuirlo senza il timore di essere "infettati" da una licenza open source
  • Agli utenti e ai ruoli possono essere assegnati privilegi a livello di oggetto
  • Supporta AES, 3DES e altri algoritmi di crittografia dei dati.

Caratteristiche di MySQL

  • MySQL è un sistema DBMS guidato dalla comunità
  • Compatibile con varie piattaforme che utilizzano tutti i principali linguaggi e middleware
  • Offre supporto per il controllo della concorrenza multi-versione
  • Conforme allo standard ANSI SQL
  • Consente la replica SSL basata su log e trigger
  • Orientato agli oggetti e compatibile con ANSI-SQL2008
  • Design multistrato con moduli indipendenti
  • Completamente multi-thread, utilizzando i thread del kernel
  • Server disponibile nel modello DB incorporato o client server
  • Offre strumenti integrati per l'analisi delle query e l'analisi dello spazio
  • Può gestire qualsiasi quantità di dati, fino a 50 milioni di righe o più
  • MySQL funziona su molte varietà di UNIX, così come su altri sistemi non UNIX come Windows e OS / 2

Caratteristiche di PostgreSQL

  • Una comunità attiva che sta accelerando il suo sviluppo
  • Alternativa più comune a Oracle, DB2 e SQL Server
  • Funziona su tutte le principali piattaforme OS che potresti avere
  • MVCC supporta un gran numero di utenti simultanei
  • Indicizzazione completa per rapporti ad alte prestazioni
  • Supporto per applicazioni moderne (XML e JSON)
  • Supporto ANSI SQL per competenze / codice trasportabili
  • Supporto di chiavi esterne per un'archiviazione efficiente dei dati
  • Unioni di tabelle e viste per un recupero flessibile dei dati
  • Trigger / stored procedure per programmi e transazioni complessi
  • Replica per backup dei dati e scalabilità di lettura

Differenze tra MySQL e PostgreSQL

Parametro MYSQL PostgreSQL
Open Source Il progetto MySQL ha reso disponibile il suo codice sorgente secondo i termini della GNU General Public License. PostgreSQL è rilasciato sotto la licenza PostgreSQL che è una licenza Open Source gratuita. Questo è simile alle licenze BSD e MIT.
Conformità agli acidi MySQL è conforme ad ACID solo quando viene utilizzato con i motori InnoDB e NDB Cluster Storage. PostgreSQL è completamente compatibile con ACID.
Conforme a SQL MySQL è parzialmente conforme a SQL. Ad esempio, non supporta il vincolo di controllo. PostgreSQL è in gran parte conforme a SQL.
Supporto della comunità Ha una vasta comunità di contributori che si concentrano principalmente sul mantenimento delle funzionalità esistenti con nuove funzionalità che emergono occasionalmente. La comunità attiva migliora costantemente le funzionalità esistenti mentre la sua comunità innovativa si impegna a garantire che rimanga il database più avanzato. Nuove funzionalità all'avanguardia e miglioramenti della sicurezza rilasciati regolarmente.
Prestazione Viene utilizzato principalmente per progetti basati sul Web che richiedono un database per transazioni di dati semplici. È molto utilizzato in sistemi di grandi dimensioni in cui le velocità di lettura e scrittura sono importanti
Il più adatto MySQL funziona bene nei sistemi OLAP e OLTP quando sono necessarie solo velocità di lettura. Prestazioni di PostgreSQL ottimali durante l'esecuzione di query complesse.
Supporto per JSON MySQL ha un supporto per il tipo di dati JSON ma non supporta altre funzionalità NoSQL. Supporta JSON e altre funzionalità NoSQL come il supporto XML nativo. Consente inoltre di indicizzare i dati JSON per un accesso più rapido.
Supporto per viste materializzate Supporta viste materializzate e tabelle temporanee. Supporta tabelle temporanee ma non offre viste materializzate.
Ecosistema MySQL ha un ecosistema dinamico con varianti come MariaDB, Percona, Galera, ecc. Postgres ha avuto opzioni di fascia alta limitate. Tuttavia, sta cambiando con nuove funzionalità introdotte nell'ultima versione.
Valori standard I valori predefiniti possono essere sovrascritti a livello di sessione e a livello di istruzione I valori predefiniti possono essere modificati solo a livello di sistema
Indici B-tree Quando è appropriato, è possibile utilizzare due o più indici B-tree. Gli indici B-tree uniti in fase di esecuzione per la valutazione sono predicati convertiti dinamicamente.
Statistiche degli oggetti Statistiche sugli oggetti abbastanza buone Statistiche sugli oggetti molto buone
Stack Overflow domande 532K 89.3K
Funzionalità di join Limita le capacità di join Buone capacità di unione
GitHub Stars 3.34k 5.6k
forchette 1.6k 2.4k
Aziende di spicco che utilizzano il prodotto Airbnb, Uber, Twitter Netflix, Instagram, Groupon

Svantaggi dell'utilizzo di MySQL

  • Le transazioni relative al catalogo di sistema non sono conformi ad ACID
  • Qualche volta Un arresto anomalo del server può danneggiare il catalogo di sistema
  • Nessun modulo di autenticazione collegabile che impedisce l'account gestito centralmente
  • Nessun supporto per i ruoli, quindi è difficile mantenere i privilegi per molti utenti
  • Le stored procedure non sono memorizzabili nella cache
  • Le tabelle utilizzate per la procedura o il trigger sono sempre pre-bloccate

Svantaggi dell'utilizzo di PostgreSQL

  • Le attuali soluzioni esterne richiedono un'elevata curva di apprendimento
  • Nessuna funzionalità di aggiornamento per le versioni principali
  • I dati devono essere esportati o replicati nella nuova versione
  • È necessario un doppio spazio di archiviazione durante il processo di aggiornamento
  • gli indici non possono essere utilizzati per restituire direttamente i risultati di una query
  • I piani di esecuzione delle query non vengono memorizzati nella cache
  • Le operazioni di caricamento di massa possono diventare vincolate alla CPU
  • Supporto di fornitori di software indipendenti sparsi

Cos'è meglio?

Dopo aver confrontato entrambi possiamo dire che MySQL ha fatto un ottimo lavoro nel migliorare se stesso per rimanere rilevante, ma dall'altra parte per PostgreSQL, non hai bisogno di alcuna licenza. Offre inoltre ereditarietà delle tabelle, sistemi di regole, tipi di dati personalizzati ed eventi del database. Quindi, è sicuramente al di sopra di MySQL.