Je suis un ASP.NET développeur qui a utilisé Microsoft SQL Server pour tous mes besoins de la base de données (à la fois au travail et pour les projets personnels). J'envisage d'essayer la pile LAMP pour certains de mes projets personnels. Quelles sont les principales différences entre MySQL et MS SQL? Sont l'utilisation de Procédures Stockées d'une pratique courante dans MySQL? Des conseils ou des ressources vous le recommande pour m'aider avec l'interrupteur? Pour ceux qui ont de l'expérience avec les deux, il manque des fonctionnalités de MySQL?
Réponses
Trop de publicités?Une chose que vous avez à regarder dehors pour est le assez graves différences dans la façon de MSSQL et MySQL en œuvre de la syntaxe SQL.
Voici une belle Comparaison de Différentes Implémentations de SQL.
Par exemple, prenons un regard sur les haut de la n de la section. Dans MySQL:
SELECT age
FROM person
ORDER BY age ASC
LIMIT 1 OFFSET 2
dans MSSQL (T-SQL):
SELECT TOP 3 WITH TIES *
FROM person
ORDER BY age ASC
Beaucoup de commentaires ici ressemble plus à des arguments religieux de la vie réelle des états. J'ai travaillé pendant des années avec MySQL et MSSQL, et les deux sont de bons produits. J'ai choisi de MySQL principalement basé sur l'environnement dans lequel vous travaillez. La plupart des projets open source, l'utilisation de MySQL, donc si vous allez dans cette direction MySQL est votre choix. Si vous développez quelque chose avec .Net je choisirais MSSQL, non pas parce que c'est beaucoup mieux, mais juste cause qu'est ce que la plupart des gens utilisent. En fait, je suis actuellement sur un Projet qui utilise ASP.NET avec MySQL et C#. Il fonctionne parfaitement bien.
MySQL est plus susceptibles d'avoir des problèmes de corruption de la base de données, et il ne résout pas automatiquement et quand ils se produisent. J'ai travaillé avec MSSQL depuis la version 6.5 et ne me souviens pas d'un problème de corruption de la base de données la base de données en mode hors connexion. Les quelques fois où j'ai travaillé avec MySQL dans un environnement de production, un problème de corruption de la base de données a pris l'ensemble de la base de données hors ligne jusqu'à ce que nous avons couru la magie "s'il vous plaît corriger mon index corrompus" chose en ligne de commande.
MSSQL de la transaction et de la journalisation système, dans mon expérience, peut gérer à peu près n'importe quoi - y compris un cycle d'alimentation ou de défaillance du matériel - sans corruption de base de données, et si quelque chose a foiré il la corrige automatiquement.
Cela a été mon expérience, et je serais heureux d'entendre que ce problème a été corrigé ou nous avons fait quelque chose de mal.
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
Franchement, je ne peux pas trouver une seule raison d'utiliser MySQL plutôt que de MSSQL. Le problème avant qu'il utilisé pour être un coût, mais SQL Server 2005 Express est gratuit et il ya beaucoup de sociétés d'hébergement web qui offre complète d'hébergement avec sql server pour moins de $5.00 par mois.
MSSQL est plus facile à utiliser et possède de nombreuses fonctionnalités qui n'existent pas dans MySQL.