Neste post quero fazer uma comparação de alto nível entre PostgreSQL e MySQL.
Um dos principais pontos de venda do PostgreSQL é a licença. O PostgreSQL é Open Source, tem a licença GPL e pertence à comunidade PostgreSQL Global Development Group.
MySQL hoje é propriedade da Oracle, e tem 2 licenças diferentes. Um é de código aberto, o outro é comercial. Isso não significa que se você quiser usar o MySQL para um projeto comercial, você precisa pagar. A licença comercial fornece suporte pago e software adicional construído em cima do MySQL, da Oracle.
Existe um fork do MySQL totalmente Open Source chamado MariaDB, que é muito menos popular em termos de uso e marca, porque não tem o mesmo histórico do MySQL, mas é um substituto ideal se você preferir o MySQL, mas estiver preocupado com o licenciamento.
Vamos falar sobre funcionalidades.
Mais ou menos, o conjunto de recursos do MySQL e do PostgreSQL é equivalente. Um pode fazer algo que o outro não faz, mas estamos falando de recursos muito avançados que não vou abordar aqui.
Ambos são sistemas de gerenciamento de banco de dados muito avançados que têm uma longa história.
Ambos suportam o padrão SQL (não completamente, mas uma grande parte) e adicionam recursos sobre ele. Ambos fornecem conformidade com ACID (Atomicidade, Consistência, Isolamento, Durabilidade).
Ambos permitem criar replicação facilmente, ambos são muito seguros, ambos têm uma enorme comunidade em torno deles para qualquer problema que você possa ter.
Ambos têm um grande conjunto de ferramentas construído em torno deles.
Qual deles você deve escolher? É difícil dizer.
A menos que você precise de um recurso específico implementado em um e não implementado no outro, eu escolheria aquele com o qual você já está familiarizado.
Por exemplo, se você vem do WordPress e já interagiu com o MySQL antes, você pode ficar com ele (ou MariaDB).
Também pode depender da plataforma na qual você deseja implantar seu software. O Heroku, por exemplo, fornece um banco de dados em nuvem PostgreSQL gerenciado integrado como um serviço, o que pode ser muito conveniente em vez de gerenciar seu próprio servidor de banco de dados.