Há certas coisas que me incomodam com o Mysql
Eu tenho que escolher entre impor restrições e transações vs Fulltext Index (InnoDb vs MyISAM). Este é realmente o problema número 1 para mim (aplicar restrições e transações é o que torna o dbs legal, mas você também precisa da pesquisa de texto completo ...)
- Não é fácil "simular" transações no código do cliente.
- Se você não aplicar as restrições, é muito fácil obter um estado inconsistente do banco de dados
- Sem a pesquisa de texto completo, você pode ficar louco com OR X LIKE %y%
- Você precisa criar BEFORE UPDATE TRIGGER com RAISE ERROR para CHECK CONSTRAINT
- Mysql tem um desempenho ruim quando os dados se tornam muito grandes (quero dizer muito grandes).
- Mysql cria planos de execução ruins
- O MySQL tem problemas com mais de 3 junções (é melhor dizer que várias junções).
Oracle é a solução para todos esses problemas, é um DBMS completo (transações, restrições CHECK, muitas opções de views, fulltext search e muito mais.. ) mas afinal é uma questão de dinheiro.