I det här inlägget vill jag göra en jämförelse på hög nivå av PostgreSQL och MySQL.
En av de viktigaste försäljningsargumenten för PostgreSQL är licensen. PostgreSQL är öppen källkod, har GPL-licensen och ägs av PostgreSQL Global Development Group-communityt.
MySQL idag ägs av Oracle och har 2 olika licenser. Den ena är öppen källkod, den andra är kommersiell. Detta gör inte innebär att om du vill använda MySQL för ett kommersiellt projekt måste du betala. Den kommersiella licensen ger betald support och ytterligare programvara byggd ovanpå MySQL, från Oracle.
Det finns en helt öppen källkodsgaffel av MySQL som heter MariaDB, som är mycket mindre populär när det gäller användning och varumärke, eftersom den inte har samma historia som MySQL, men det är en optimal drop-in-ersättning om du föredrar MySQL men du är orolig för licensiering.
Låt oss prata om funktioner.
Mer eller mindre är funktionerna i både MySQL och PostgreSQL likvärdiga. Den ena kanske gör något som den andra inte gör, men vi pratar om mycket avancerade funktioner som jag inte kommer in på här.
Båda är mycket avancerade databashanteringssystem som har en lång historia.
Båda stöder SQL-standarden (inte helt, men en stor del) och lägger till funktioner ovanpå den. Båda ger överensstämmelse med ACID (Atomicitet, Konsistens, Isolering, Hållbarhet).
Båda gör att du enkelt kan skapa replikering, båda är mycket säkra, båda har en enorm gemenskap runt sig för alla problem du kan ha.
Båda har en stor uppsättning verktyg byggd runt sig.
Vilken ska du välja? Det är svårt att säga.
Om du inte behöver en speciell funktion implementerad i den ena och inte implementerad i den andra, skulle jag välja den du redan är bekant med.
Till exempel, om du kommer från WordPress och har interagerat med MySQL tidigare, kan du bara hålla dig till det (eller MariaDB).
Det kan också bero på vilken plattform du vill distribuera din programvara på. Heroku tillhandahåller till exempel en inbyggd hanterad PostgreSQL molndatabas som en tjänst, vilket kan vara mycket bekvämt istället för att hantera din egen databasserver.