Je suis un développeur ASP.NET qui a utilisé Microsoft SQL Server
pour tous mes besoins de base de données (à la fois au travail et pour des projets personnels).
J'envisage d'essayer la pile LAMP pour certains de mes projets personnels.
Quelles sont certaines des principales différences entre MySQL
et SQL Server
? L'utilisation de procédures stockées est-elle une pratique courante dans MySQL
?
Des conseils ou des ressources que vous recommanderiez pour m'aider avec le changement?
Pour ceux qui ont l'expérience des deux, y a-t-il des fonctionnalités manquantes dans MySQL
?
la source
Beaucoup de commentaires ici ressemblent plus à des arguments religieux qu'à des déclarations de la vie réelle. J'ai travaillé pendant des années avec MySQL et MSSQL et les deux sont de bons produits. Je choisirais MySQL principalement en fonction de l'environnement sur lequel vous travaillez. La plupart des projets open source utilisent 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 simplement parce que c'est ce que la plupart des gens utilisent. Je suis actuellement sur un projet qui utilise ASP.NET avec MySQL et C #. Cela fonctionne parfaitement bien.
la source
Lamp Stack
. Beaucoup de gens diront probablement LAMP ou WAMP. De même, au lieu de dire Microsoft SQL Server, nous avons fait de MS SQL Server vers MS SQL vers MSSQLJe ne peux pas croire que personne n'ait mentionné que MySQL ne prend pas en charge les expressions de table communes (CTE) / "with". C'est une différence assez ennuyeuse.
la source
MySQL est plus susceptible d'avoir des problèmes de corruption de base de données et ne les résout pas automatiquement lorsqu'ils se produisent. J'ai travaillé avec MSSQL depuis la version 6.5 et je ne me souviens pas d'un problème de corruption de base de données mettant la base de données hors ligne. 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 mis la base de données entière hors ligne jusqu'à ce que nous ayons exécuté le truc magique "s'il vous plaît réparer mon index corrompu" depuis la ligne de commande.
Le système de transaction et de journalisation de MSSQL, d'après mon expérience, gère à peu près tout - y compris un cycle d'alimentation ou une panne matérielle - sans corruption de la base de données, et si quelque chose est gâché, il le corrige automatiquement.
Cela a été mon expérience et je serais heureux d'apprendre que cela a été corrigé ou que nous faisions 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
la source
Franchement, je ne trouve pas une seule raison d'utiliser MySQL plutôt que MSSQL. Le problème avant était coûteux, mais SQL Server 2005 Express est gratuit et il existe de nombreuses sociétés d'hébergement Web qui offrent un hébergement complet avec serveur SQL 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.
la source
Tout dans MySQL semble être fait plus près du métal que dans MSSQL, et la documentation le traite de cette façon. En particulier pour l'optimisation, vous devrez comprendre comment les index, la configuration du système et l'optimiseur interagissent dans diverses circonstances.
L '"optimiseur" est plus un analyseur. Dans MSSQL, votre plan de requête est souvent une surprise (généralement bon, parfois pas). Dans MySQL, il fait à peu près ce que vous lui avez demandé de faire, comme vous vous y attendiez. Ce qui signifie que vous devez vous-même avoir une compréhension approfondie des différentes façons dont cela pourrait être fait.
Pas construit autour d'un bon modèle TRANSACTION (moteur MyISAM par défaut).
La configuration du système de fichiers est votre problème.
Toute la configuration de la base de données est votre problème - en particulier les différentes tailles de cache.
Parfois, il semble préférable de le considérer comme un isam ad hoc et glorifié. Codd et Date n'ont pas beaucoup de poids ici. Ils le diraient sans embarras.
la source
Je pense que l'une des principales choses à surveiller est que les versions antérieures à MySQL 5.0 n'avaient pas de vues, de déclencheurs et de procédures stockées.
Pour en savoir plus, consultez la page de téléchargement de MySQL 5.0 .
la source
@abdu
La principale chose que j'ai trouvée que MySQL a sur MSSQL est la prise en charge des fuseaux horaires - la possibilité de bien changer entre les fuseaux horaires, en respectant l'heure d'été est fantastique.
Comparez ceci:
aux contorsions impliquées dans cette réponse .
Pour ce qui est du commentaire «plus facile à utiliser», je dirais que le fait est qu'ils sont différents, et si vous en connaissez un, il y aura une surcharge dans l'apprentissage de l'autre.
la source
Les deux sont le serveur Product Sql de SGBD est une application commerciale tandis que MySql est une application open source.Les deux produits incluent des fonctionnalités similaires, mais le serveur SQL doit être utilisé pour une solution d'entreprise, tandis que mysql peut convenir à une implémentation plus petite.Si vous avez besoin d'une fonctionnalité comme la récupération, réplication, sécurité granalar et importante, vous avez besoin d'un serveur SQL
MySql prend moins d'espace sur le disque et utilise moins de mémoire et de processeur que le serveur SQL
la source
Cela devrait être assez douloureux! J'ai changé de version de MySQL de 4.x à 5.x et diverses instructions ne fonctionneraient plus comme avant. L'analyseur de requêtes a été "amélioré" de sorte que les instructions qui étaient précédemment réglées pour les performances ne fonctionneraient plus comme prévu.
La leçon tirée de l'utilisation d'une base de données MySQL de 500 Go: c'est un sujet subtil et tout autre chose mais trivial!
la source
@Cebjyre. L'IDE, que ce soit Enterprise Manager ou Management Studio, est meilleur que tout ce que j'ai vu jusqu'à présent pour MySQL. Je dis «plus facile à utiliser» car je peux faire beaucoup de choses en MSSQL là où MySQL n'a pas d'équivalent. Dans MySQL, je n'ai aucune idée de comment régler les requêtes en regardant simplement le plan de requête ou en regardant les statistiques. L'assistant de réglage d'index dans MSSQL prend l'essentiel du travail de conjecture sur les index manquants ou égarés.
Un inconvénient de MySQL est qu'il n'y a pas de taille maximale pour une base de données. La base de données augmenterait simplement de taille jusqu'à ce qu'elle remplisse le disque. Imaginez si ce disque partage des bases de données avec d'autres utilisateurs et que soudainement toutes leurs requêtes échouent parce que leurs bases de données ne peuvent pas croître. J'ai signalé ce problème à MySQL il y a longtemps. Je ne pense pas que ce soit encore réglé.
la source
Passant un peu de temps à travailler avec MySQL du POV de syntaxe MSSQL à MySQL, je me suis retrouvé limité dans ce que je pouvais faire.
Il y a des limites bizzare sur la mise à jour d'une table tout en réfrénant la même table lors d'une mise à jour.
De plus, UPDATE FROM ne fonctionne pas et la dernière fois que j'ai vérifié, ils ne prennent pas non plus en charge la syntaxe Oracle MERGE INTO. Cela a été un frein pour moi et j'ai arrêté de penser que j'arriverais à quelque chose avec MySQL après cela.
la source