← Voltar ao blog
Ciência e Tecnologia 23 de setembro de 2026 10 min de leitura

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.

Oracle ou MySQL: quando cada um realmente vale a pena

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.

Dois servidores de banco de dados em uma balança, um vermelho e um azul
O prato que pesa mais na balança quase nunca é o técnico.

O quadro geral

CritérioOracle DatabaseMySQL 8
Custo de licençaAlto; suporte de 22% ao anoGPL gratuito; subscrição opcional
Linguagem proceduralPL/SQL, maduríssimaSQL/PSM, funcional e bem mais simples
Cluster ativo-ativoRAC (opção paga)InnoDB Cluster / Group Replication, incluso
ParticionamentoOpção paga no EENativo
Paralelismo de querySim, robustoLimitado
Flashback / PITR finoFlashback Query e DatabasePITR por binlog
Mercado de profissionaisMenor e mais caroEnorme

Onde o Oracle ainda ganha de verdade

  • Paralelismo em consultas analíticas pesadas. Um SELECT varrendo 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

  1. 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.
  2. Meça as linhas de PL/SQL. Acima de alguns milhares, migração vira projeto de anos.
  3. Verifique certificação de fornecedores. É aqui que muita migração morre.
  4. 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.