Oracle ou MySQL: quando cada um realmente vale a pena
Não é comparação de peso igual, e nem precisa ser. Onde o Oracle ainda é insubstituível, onde o MySQL faz o mesmo trabalho por uma fração do custo, e o que muda no dia a dia de quem opera.

Comparar Oracle com MySQL é como comparar um caminhão com uma van. O caminhão carrega mais. A pergunta certa não é qual é maior — é o que você precisa transportar. E na maioria das empresas que eu visito, o que precisa ser transportado cabe na van, com folga.
O quadro geral
| Critério | Oracle Database | MySQL 8 |
|---|---|---|
| Custo de licença | Alto; suporte de 22% ao ano | GPL gratuito; subscrição opcional |
| Linguagem procedural | PL/SQL, maduríssima | SQL/PSM, funcional e bem mais simples |
| Cluster ativo-ativo | RAC (opção paga) | InnoDB Cluster / Group Replication, incluso |
| Particionamento | Opção paga no EE | Nativo |
| Paralelismo de query | Sim, robusto | Limitado |
| Flashback / PITR fino | Flashback Query e Database | PITR por binlog |
| Mercado de profissionais | Menor e mais caro | Enorme |
Onde o Oracle ainda ganha de verdade
- Paralelismo em consultas analíticas pesadas. Um
SELECTvarrendo centenas de gigabytes com 16 processos paralelos não tem equivalente no MySQL. - PL/SQL como plataforma. Empresas com trinta anos de regra de negócio dentro do banco não migram isso num trimestre — packages, tipos, bulk collect, autonomous transactions.
- RAC. Para quem precisa de escrita ativa em múltiplos nós com armazenamento compartilhado, não existe equivalente direto.
- Flashback. Voltar uma tabela ao estado de 40 minutos atrás com um comando já salvou muita gente.
- Certificação de ERP. Se o fornecedor só suporta Oracle, a discussão técnica acabou.
A diferença que aparece no código
-- Oracle: Flashback Query, viagem no tempo nativa
SELECT * FROM pedidos AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '40' MINUTE)
WHERE id = 9912;
-- MySQL: o equivalente e restaurar backup + aplicar binlog ate o ponto
-- mysqlbinlog --stop-datetime="2026-09-23 08:45:00" binlog.000123 | mysql
Onde o MySQL faz o mesmo trabalho
Aplicação web, SaaS, e-commerce, API transacional, sistema interno, catálogo, marketplace. Carga OLTP com muita leitura e escrita curta é exatamente o terreno do InnoDB. Nesses casos o Oracle não entrega vantagem que justifique o custo — entrega complexidade.
E o MySQL moderno já não é o de 2010. CTEs, window functions, CHECK constraints, JSON com índices funcionais, coluna gerada, clone plugin, replicação semi-síncrona e failover automático com InnoDB Cluster:
-- MySQL 8: window function e CTE, sintaxe praticamente igual a do Oracle
WITH ranking AS (
SELECT cliente_id, valor,
ROW_NUMBER() OVER (PARTITION BY cliente_id ORDER BY valor DESC) AS pos
FROM pedidos
WHERE criado_em >= NOW() - INTERVAL 30 DAY
)
SELECT cliente_id, valor FROM ranking WHERE pos <= 3;
-- Indice funcional sobre JSON, algo que faltava por anos
ALTER TABLE eventos ADD INDEX idx_tipo ((CAST(payload->>'$.tipo' AS CHAR(40))));
O que muda no dia a dia de quem opera
Essa parte raramente entra na planilha e pesa muito:
- Contratar. Achar DBA MySQL é rápido. DBA Oracle sênior é caro e disputado.
- Subir ambiente. Um MySQL de desenvolvimento nasce em um contêiner em segundos, sem licença de não produção.
- Nuvem. MySQL gerenciado existe em todo provedor por preço de commodity. Oracle na nuvem de terceiro esbarra em regra de licenciamento.
- Auditoria. Com MySQL não existe o risco de descobrir que alguém usou uma opção paga sem saber.
Como eu decido
- Rode o inventário de uso de opções no Oracle atual. Se ninguém usa nada do Enterprise, você já tem meio caminho andado — veja licenciamento explicado.
- Meça as linhas de PL/SQL. Acima de alguns milhares, migração vira projeto de anos.
- Verifique certificação de fornecedores. É aqui que muita migração morre.
- Compare o custo de dez anos de suporte com o custo do projeto de saída.
Se o destino natural for PostgreSQL em vez de MySQL — o que acontece quando há muito PL/SQL —, leia Oracle ou PostgreSQL. Para dimensionar o MySQL antes de confiar nele, MySQL em aplicações críticas e escaláveis e a página de MySQL reúnem o resto.
Sobre o autor: Alexandre Almeida atua com bancos de dados há mais de 25 anos, foi instrutor oficial de Oracle e MySQL para mais de 1.000 alunos e escreveu Aprendendo MySQL: Prática, Teoria e Laboratórios.
Fontes: Oracle Database Licensing Information User Manual 19c; MySQL 8.0 Reference Manual; Oracle Technology Global Price List.