I dette indlæg vil jeg lave en sammenligning på højt niveau af PostgreSQL og MySQL.
Et af de vigtigste salgsargumenter ved PostgreSQL er licensen. PostgreSQL er Open Source, har GPL-licensen, og det ejes af PostgreSQL Global Development Group-fællesskabet.
MySQL er i dag ejet af Oracle og har 2 forskellige licenser. Den ene er open source, den anden er kommerciel. Dette gør ikke betyder, at hvis du vil bruge MySQL til et kommercielt projekt, skal du betale. Den kommercielle licens giver betalt support og yderligere software bygget oven på MySQL fra Oracle.
Der er en fuldt Open Source fork af MySQL kaldet MariaDB, som er meget mindre populær med hensyn til brug og branding, fordi den ikke har den samme historie som MySQL, men det er en optimal drop-in erstatning, hvis du foretrækker MySQL, men du er bekymret for licenser.
Lad os tale om funktioner.
Mere eller mindre er funktionssættet af både MySQL og PostgreSQL tilsvarende. Den ene gør måske noget, den anden ikke gør, men vi taler om meget avancerede funktioner, som jeg ikke kommer ind på her.
Begge er meget avancerede databasestyringssystemer, der har en lang historie.
Begge understøtter SQL-standarden (ikke helt, men en stor del) og tilføjer funktioner oveni. Begge leverer ACID-overholdelse (Atomicitet, Konsistens, Isolation, Holdbarhed).
Begge gør det nemt at oprette replikering, begge er meget sikre, begge har et stort fællesskab omkring sig for ethvert problem, du måtte have.
Begge har et stort sæt værktøj bygget omkring dem.
Hvilken skal du vælge? Det er svært at sige.
Medmindre du har brug for en bestemt funktion implementeret i den ene og ikke implementeret i den anden, ville jeg vælge den, du allerede er bekendt med.
For eksempel, hvis du kommer fra WordPress og har interageret med MySQL før, kan du bare holde dig til det (eller MariaDB).
Det kan også afhænge af den platform, du vil implementere din software på. Heroku leverer for eksempel en indbygget administreret PostgreSQL cloud-database som en tjeneste, hvilket kan være meget praktisk i stedet for at administrere din egen databaseserver.