Mai dall'introduzione delle applicazioni web, c'era sempre una necessità per una query più veloce sistema di back-end che potrebbe ridurre al minimo il tempo di risposta di qualsiasi applicazione di elaborazione. Per gestire in modo efficiente l'utente immesso dati per l'elaborazione e l'archiviazione, sistemi di gestione di database sono stati introdotti in grado di elaborare i dati e memorizzare l'output.
MySQL, MS Access e PostgreSQL sono alcuni dei sistemi di gestione del famoso database o DBMS al giorno d'oggi. MS Access, essendo un DBMS proprietario non è di solito considerato come aumenta il costo di distribuzione; MySQL e PostgreSQL essendo DBMS open source venire nell'elenco prioritario di sviluppatori e amministratori.
Entrambi, MySQL e PostgreSQL, sono supportati su principali OSs come Linux e Windows e sono liberi di utilizzare. Entrambi sono facilmente scalabili e possono essere distribuiti da piccolo per le applicazioni distribuite gigante. Alcune delle applicazioni web più importanti come Facebook e Twitter utilizzare MySQL come loro DBMS di back-end e gli altri come Reddit e Disqus hanno i loro sistemi di elaborazione dati basati su PostgreSQL. Selezione tra i due è fortemente dipendente dal tipo di applicazione e le aspettative dagli amministratori per i parametri delle prestazioni diverse.
MySQL diventa la priorità degli sviluppatori in situazioni in cui le prestazioni dell'applicazione sono la preoccupazione principale. D'altra parte, per le applicazioni che possono includere riferimenti chiavi esterna cioè per riferimento dati da altre tabelle nel database, PostgreSQL è una soluzione migliore sotto tale situazione.
PostgreSQL fornisce più l'integrità dei dati in un DBMS come convalida e assicura l'autenticità dei dati; essendo un DBMS data-centric. MySQL, d'altra parte, si concentra maggiormente sulle prestazioni e velocità di applicazione invece l'integrità dei dati.
PostgreSQL può eseguire TRIGGER da qualsiasi linguaggio procedurale per ogni funzione definita dall'utente. MySQL, d'altra parte, TRIGGER sono attivati da solo le istruzioni SQL. Questo crea un problema quando qualsiasi API distribuito nell'applicazione di apportare modifiche nella tabella e trigger non vengono attivati in quella situazione.
Supporto per PostgreSQL per indicizzazione parziale della tabella che è una caratteristica favorevole quando un indice è costruito sopra un sottoinsieme di tabella definito dall'utente. MySQL non supporta questa funzionalità e così l'indicizzazione dell'intera tabella è doveva essere fatto nel caso di MySQL.
MySQL può fornire un supporto per altri motori di archiviazione secondo la natura di un'applicazione e le sue esigenze di gestione dei dati. PostgreSQL è invece un motore di archiviazione unico in sé e per qualsiasi tipo di applicazione, la sua natura non può essere modificata.