Sou desenvolvedor do ASP.NET que utilizou Microsoft SQL Server
para todas as minhas necessidades de banco de dados (tanto no trabalho quanto em projetos pessoais).
Estou pensando em experimentar a pilha LAMP para alguns dos meus projetos pessoais.
Quais são algumas das principais diferenças entre MySQL
e SQL Server
? O uso de procedimentos armazenados é uma prática comum MySQL
?
Algum conselho ou recursos que você recomendaria para me ajudar com a troca?
Para aqueles que têm experiência com os dois, faltam alguns recursos MySQL
?
fonte
Muitos comentários aqui parecem mais argumentos religiosos do que declarações da vida real. Eu trabalhei por anos com MySQL e MSSQL e ambos são bons produtos. Eu escolheria o MySQL principalmente com base no ambiente em que você está trabalhando. A maioria dos projetos de código aberto usa o MySQL, portanto, se você for nessa direção, o MySQL é sua escolha. Se você desenvolver algo com o .Net, eu escolheria o MSSQL, não porque seja muito melhor, mas apenas porque é isso que a maioria das pessoas usa. Atualmente, estou atualmente em um projeto que usa o ASP.NET com MySQL e C #. Funciona perfeitamente bem.
fonte
Lamp Stack
. Muitas pessoas provavelmente dirão apenas LAMP ou WAMP. Da mesma forma, em vez de dizer Microsoft SQL Server nós fizemo-lo MS SQL Server para MS SQL para MSSQLNão acredito que ninguém mencionou que o MySQL não suporta instruções Common Table Expressions (CTE) / "with". É uma diferença bastante irritante.
fonte
É mais provável que o MySQL tenha problemas de corrupção de banco de dados e não os corrige automaticamente quando eles acontecem. Eu trabalhei com o MSSQL desde a versão 6.5 e não me lembro de um problema de corrupção do banco de dados que deixou o banco de dados offline. Nas poucas vezes em que trabalhei com o MySQL em um ambiente de produção, um problema de corrupção do banco de dados deixou todo o banco de dados offline até executarmos a coisa mágica "por favor, corrija meu índice corrompido" na linha de comando.
O sistema de transações e registro de diário do MSSQL, na minha experiência, lida com praticamente qualquer coisa - incluindo um ciclo de energia ou falha de hardware - sem corrupção do banco de dados e, se algo ficar bagunçado, ele o corrige automaticamente.
Esta foi a minha experiência e ficaria feliz em saber que isso foi corrigido ou que estávamos fazendo algo errado.
http://dev.mysql.com/doc/refman/6.0/en/corrupted-myisam-tables.html
http://www.google.com/search?q=site%3Abugs.mysql.com+index+corruption
fonte
Francamente, não consigo encontrar um único motivo para usar o MySQL em vez do MSSQL. O problema antes era caro, mas o SQL Server 2005 Express é gratuito e existem muitas empresas de hospedagem na web que oferecem hospedagem completa com servidor sql por menos de US $ 5,00 por mês.
O MSSQL é mais fácil de usar e possui muitos recursos que não existem no MySQL.
fonte
Tudo no MySQL parece ser feito mais próximo do metal que no MSSQL, e a documentação trata dessa maneira. Especialmente para otimização, você precisará entender como os índices, a configuração do sistema e o otimizador interagem sob várias circunstâncias.
O "otimizador" é mais um analisador. No MSSQL, seu plano de consulta geralmente é uma surpresa (geralmente boa, às vezes não). No MySQL, ele praticamente faz o que você pediu, do jeito que você esperava. O que significa que você precisa ter uma compreensão profunda das várias maneiras pelas quais isso pode ser feito.
Não construído em torno de um bom modelo de TRANSACTION (mecanismo MyISAM padrão).
A configuração do sistema de arquivos é seu problema.
Toda a configuração do banco de dados é seu problema - especialmente vários tamanhos de cache.
Às vezes, parece melhor pensar nisso como um isam ad-hoc e glorificado. Codd e Date não têm muito peso aqui. Eles diriam isso sem vergonha.
fonte
Eu acho que uma das principais coisas a observar é que as versões anteriores ao MySQL 5.0 não tinham visualizações, gatilhos e procedimentos armazenados.
Mais sobre isso é explicado na página de download do MySQL 5.0 .
fonte
@abdu
A principal coisa que eu descobri que o MySQL tem sobre o MSSQL é o suporte ao fuso horário - a capacidade de mudar muito bem entre os fusos horários, respeitando o horário de verão, é fantástica.
Compare isto:
para as contorções envolvidas nesta resposta .
Quanto ao comentário 'mais fácil de usar', eu diria que o ponto é que eles são diferentes e, se você conhece um, haverá uma sobrecarga no aprendizado do outro.
fonte
O produto inclui recurso semelhante, no entanto, o servidor sql deve ser usado para uma solução corporativa, enquanto o mysql pode ser adequado a uma implementação menor. Se você precisar de recursos como recuperação, replicação, segurança granalar e significativa, você precisa de um servidor sql
O MySQL ocupa menos espaço no disco e usa menos memória e CPU do que o sql server
fonte
Isso deve ser bastante doloroso! Troquei as versões do MySQL de 4.x para 5.xe várias instruções não funcionariam mais como costumavam. O analisador de consultas foi "aprimorado" para que as instruções previamente ajustadas para desempenho não funcionassem mais como o esperado.
A lição aprendida ao trabalhar com um banco de dados MySQL de 500 GB: é um tópico sutil e qualquer outra coisa, menos trivial!
fonte
@Cebjyre. O IDE, seja o Enterprise Manager ou o Management Studio, é melhor do que qualquer coisa que eu tenha visto até agora no MySQL. Eu digo 'mais fácil de usar' porque posso fazer muitas coisas no MSSQL onde o MySQL não tem contrapartes. No MySQL, eu não tenho idéia de como ajustar as consultas simplesmente olhando o plano de consulta ou as estatísticas. O assistente de ajuste de índice no MSSQL realiza a maior parte do trabalho de adivinhação sobre quais índices estão ausentes ou extraviados.
Uma desvantagem do MySQL é que não há tamanho máximo para um banco de dados. O banco de dados aumentaria de tamanho até preencher o disco. Imagine se este disco estiver compartilhando bancos de dados com outros usuários e, de repente, todas as suas consultas falharem porque seus bancos de dados não podem crescer. Eu relatei esse problema ao MySQL há muito tempo. Acho que ainda não está consertado.
fonte
Passando algum tempo trabalhando com o MySQL da sintaxe do MSSQL para o MySQL POV, fiquei me limitando ao que podia fazer.
Existem limites de atualização para atualizar uma tabela e atualizar a mesma tabela durante uma atualização.
Além disso, UPDATE FROM não funciona e da última vez que verifiquei, eles também não suportam a sintaxe Oracle MERGE INTO. Essa foi uma parada para mim e eu parei de pensar que chegaria a algum lugar com o MySQL depois disso.
fonte