Desenvolvimento · Banco de Dados

PostgreSQL ou MySQL: qual banco de dados escolher para o seu projeto

Edson Feitosa de Oliveira Junior
Edson Feitosa de Oliveira Junior Fundador e Engenheiro Líder · PruPru Digital Services

PostgreSQL ou MySQL é uma dúvida comum porque são os dois bancos de dados relacionais de código aberto mais usados do mundo. Ambos são maduros, confiáveis, gratuitos e suportados por todas as grandes nuvens e hospedagens. Para a maioria dos projetos, qualquer um dos dois atende muito bem. Ainda assim, há diferenças que podem pesar na escolha, principalmente em recursos avançados, tipos de dados e no ecossistema ao redor do projeto.

Em resumo

PostgreSQL ou MySQL: comparação prática

CritérioPostgreSQLMySQL
Aderência ao SQL padrãoAltaBoa, com algumas particularidades
JSONTipo JSONB com índices e operadores avançadosTipo JSON com funções, bom suporte
Tipos de dadosMuitos: arrays, intervalos, UUID nativo, tipos geográficos com PostGIS, tipos personalizadosOs essenciais, com menos variedade
ExtensõesEcossistema forte (PostGIS, pgvector, full-text)Menos extensível
Consultas analíticas complexasMuito forte (CTEs, funções de janela, planejador robusto)Bom nas versões atuais
Simplicidade de administraçãoBoaMuito boa
Hospedagem compartilhada barataMenos comumPraticamente universal
WordPress e muitos CMS em PHPNão suportado oficialmente pelo WordPressPadrão

Quando escolher PostgreSQL

Quando escolher MySQL

Diferenças que costumam surpreender

Exemplo de upsert no PostgreSQL:

INSERT INTO clientes (email, nome)
VALUES ('ana@exemplo.com', 'Ana Silva')
ON CONFLICT (email)
DO UPDATE SET nome = EXCLUDED.nome;

Se você usa um ORM, como JPA/Hibernate, Django ORM ou Prisma, boa parte dessas diferenças fica escondida, mas elas aparecem em consultas manuais e migrações.

Desempenho

Comparações de desempenho genéricas costumam ser enganosas. Os dois são rápidos quando bem configurados e com os índices certos. Na prática, a maioria dos problemas de lentidão vem de consultas mal escritas e índices ausentes, não da escolha do banco. Veja otimização de consultas lentas no MySQL e PostgreSQL.

Hospedagem e custo

Os dois são gratuitos e de código aberto. O custo vem da hospedagem:

Antes de decidir, verifique o que o seu provedor oferece e quanto custa o backup automático, que não deve ser opcional em produção.

Para quem está aprendendo

Qualquer um serve para aprender SQL. Os comandos básicos de consulta, inserção, atualização e junção de tabelas são praticamente os mesmos. Veja SQL básico: consultas essenciais. Para praticar sem instalar nada no sistema, suba o banco com Docker; o artigo Docker para iniciantes mostra um exemplo com PostgreSQL.

Nossa recomendação

Para um projeto novo de sistema ou API, sem restrição de hospedagem, o PostgreSQL costuma ser a escolha mais versátil, pela riqueza de recursos que você pode precisar no futuro. Para sites em WordPress ou projetos em hospedagens que só oferecem MySQL, use MySQL ou MariaDB sem medo. Mais importante do que o banco escolhido é modelar bem as tabelas, criar índices adequados e ter backups testados.

Na prática da PruPru

A escolha do banco é só o começo; o desenho da leitura costuma pesar mais. Num projeto da PruPru, uma API interna precisava ler dados de um ERP em SQL Server com cerca de 200 GB, que já atendia o faturamento o dia todo. Em vez de consultar a produção, montamos replicação transacional para um servidor clone somente leitura, com índices próprios para a API. PostgreSQL e MySQL têm recursos equivalentes de réplica de leitura, e vale planejá-los desde o início se relatórios e integrações vão crescer. O caso completo está em replicação transacional no SQL Server.

Sistemas sob medida

A PruPru desenvolve APIs, sistemas web e integrações com as mesmas práticas descritas neste guia. Se a sua empresa precisa de software bem construído, conheça os serviços.

Ver serviços →

Perguntas frequentes

PostgreSQL é mais rápido que MySQL?

Depende da carga de trabalho e da configuração. Os dois são rápidos quando bem configurados e com índices adequados. A maioria dos problemas de desempenho vem de consultas e modelagem, não da escolha do banco.

Posso migrar de MySQL para PostgreSQL depois?

Pode, mas exige trabalho: diferenças de tipos, funções, sintaxe e comportamento precisam ser ajustadas e testadas. Ferramentas de migração ajudam, mas não fazem tudo sozinhas.

Qual é melhor para aprender SQL?

Qualquer um dos dois. Os comandos básicos são praticamente iguais. Escolha o que for mais fácil de instalar ou o que é usado nas vagas e cursos que você pretende seguir.

MariaDB é a mesma coisa que MySQL?

O MariaDB nasceu como um derivado do MySQL e mantém alta compatibilidade para a maioria dos usos, mas os dois evoluíram de forma independente e têm diferenças em recursos mais recentes.

Falar no WhatsApp agora