Armadilhas do uso do MySQL como sua escolha de banco de dados? [fechadas]

20

Eu li online em várias ocasiões que o MySQL é um banco de dados ruim. Os lugares que eu li isso incluem alguns tópicos no Reddit, mas eles nunca parecem investigar por que é um produto ruim.

Existe alguma verdade nessa afirmação? Eu nunca o usei além de um cenário CRUD muito simples, e isso foi para um projeto universitário durante meu segundo ano.

Que armadilhas, se houver , existem ao escolher o MySQL como seu banco de dados?


fonte
7
A principal armadilha, é claro, é que os fanáticos do Postgres tentarão deixar você inseguro sobre sua escolha.
Dan Ray
A Wikimedia usa, portanto, não deve ser tão ruim.
Arlen Beiler #

Respostas:

32

Existem dois tipos diferentes de armadilhas, as que usam o MySQL como seu tipo de RDBMS e as que usam um RDBMS em vez de outros tipos de bancos de dados.

Usando o MySQL em vez de RDBMSs alternativos:

  • Veja esta tabela de comparação da Wikipedia para várias comparações do MySQL com outros RDBMSs.
  • Você provavelmente preferirá o Microsoft SQL Server se estiver criando um aplicativo Web ASP.NET, pois o sistema foi projetado para funcionar bem em conjunto, acredito que tanto para desenvolvedores quanto para gerentes de TI
  • Você pode preferir o Oracle se precisar de uma configuração de banco de dados mais avançada envolvendo clustering (Oracle RAC) ou procedimentos avançados de banco de dados. Não que o MySQL não suporte muitos dos recursos, mas pelo que vi, é muito mais provável que você encontre um DBA experiente que conheça essas coisas para Oracle do que o MySQL.
  • Veja esta pergunta no SO para comparações extensivas do PostgreSQL com o MySQL, que dizem isso melhor do que eu.
  • Ainda mais SO: Desvantagens do mysql versus outros bancos de dados

Usando RDBMSs em vez de outros tipos:

Tudo o que foi dito, o MySQL é um ótimo banco de dados, e eu não trabalhei em uma empresa nos últimos 8 anos que não o usou, em uma ampla variedade de aplicativos da web (como comércio eletrônico, sites / aplicativos) , empresa / B2B, jogos da Web). Para uma grande maioria dos casos de uso típicos de aplicativos da Web, é uma ótima opção.

Nicole
fonte
4
Grande resposta, especialmente para o MySQL vs. RDBMS e RDBMS vs. NoSQL
Josh K
1
O SQL Server também possui cluster e os recursos avançados. Mas você está certo de que terá mais problemas para encontrar um especialista em banco de dados mySQL que possa lidar com essas coisas ou até mesmo saber como projetá-las. Essas pessoas se especializam principalmente em Oracle, db2 ou SQL Server.
HLGEM 3/03
1
@HLGEM, obrigado por esclarecer isso, eu queria mostrar quais são os pontos fortes da Oracle, e não que outros DBMSs não suportem esses recursos. O SQL Server é absolutamente capaz nessas áreas, apenas possui a desvantagem natural da dependência do Windows para uma empresa que não usa o Windows para mais nada.
Nicole
1
isso é absolutamente verdade, a dependência do Windows prejudica o SQL Server.
HLGEM em 03/11
8

O MySQL agora está sob o controle da Oracle - embora de código aberto eles ainda decidam a direção do projeto e o que entra.

Em termos de ser um banco de dados ruim, não, é apenas 'mais simples' do que alguns outros.

Se você está procurando pontos fracos, eu os apontarei para você, vamos usar o PostgreSQL, por exemplo.

  1. O MySQL não possui tipos e matrizes de contêineres.
  2. O MySQL não possui sequências verdadeiras (elas usam incremento automático) - as sequências do Postgres permitem que várias tabelas usem uma única sequência, para que você possa garantir cardinalidade em várias tabelas.
  3. O Postgres é compatível com ACID, o MySQL é parcialmente compatível.
  4. O Postgres implementa a variação de caracteres e o texto da mesma maneira (Toast Tables) - essa abordagem muitos argumentam que é melhor que o MySQL.
  5. O Postgres possui apenas um back-end de armazenamento - isso significa que você garante os mesmos recursos em todos os lugares.
  6. O Postgres permite funções do lado do servidor escritas em TCL, Python, R e Perl.
  7. O Postgres tem um bom suporte para drivers assíncronos em Python - acho que é um pouco imprevisível com o MySQL
Ben DeMott
fonte
6

Historicamente, o suporte a transações era fraco, e as transações são importantes se você precisar manter um banco de dados consistente. Atualmente, o grande rap é que a Oracle é a dona.

David Thornley
fonte
4

Por um longo tempo, o MySQL foi mais um banco de dados "brinquedo". Ele não tratava de sub-seleções aninhadas, não suportava o particionamento de dados, não oferecia vários níveis de isolamento de transações, não suportava gatilhos ou procedimentos armazenados - muitas coisas. Muitas pessoas vindas do fundo do Oracle ou do SQL Server o demitiram.

Eu acho que a verdadeira razão pela qual você não vê muitas listas de deficiências do MySQL é que ele tem uma base de fãs bastante raivosa que exclui ou diminui o voto de qualquer menção pública a eles. Sei que, sempre que mencionei qualquer problema que tive, as respostas tendem a ser extremamente negativas.

TMN
fonte
3

O MySQL é compatível com ACID quando usado com o mecanismo de armazenamento InnoDB - não há razão para fazê-lo. O MySQL é compatível com ACID (a partir das versões 5.5, o InnoDB é o mecanismo de armazenamento padrão).

O MySQL recebe muita má imprensa porque é frequentemente usado (ou até o advento do NoSQL) como o RDBMS de escolha por pessoas que mal precisavam de um banco de dados (e talvez tivessem habilidades limitadas em RDBMS) e, portanto, o usavam de maneira desajeitada maneira.

Eu usei muito o MySQL e, desde que o 5.x apareceu, há muito pouco a reclamar sobre isso nos 95% das instalações que têm requisitos intermediários.

glaucon
fonte