web-dev-qa-db-fra.com

MySQL vs SQL Server vs Oracle

J'ai toujours utilisé uniquement MySQL et aucun autre système de base de données.

Une question est apparue lors d’une réunion d’entreprise aujourd’hui et j’étais embarrassée. Je ne savais pas: pour un développeur, quelle fonctionnalité révolutionnaire MS ou Oracle offre-t-il à MySQL qui manque et qui permet à MS et Oracle de faire payer leurs systèmes?

78
Kshitij Saxena -KJ-

Je pense que d’autres commentateurs ont parfaitement raison de souligner toutes les capacités supplémentaires non essentielles du SGBDR associées aux solutions commerciales.

Voici une matrice des éditions et fonctionnalités Oracle qu’il serait intéressant de parcourir simplement pour comprendre les fonctionnalités "supplémentaires", en particulier dans le contexte du coût de développement et de prise en charge de votre propre version (si cela est même possible). sur un produit comme MySQL: http://www.Oracle.com/us/products/database/product-editions-066501.html

Par exemple, si votre exigence était la suivante: "Les utilisateurs seront en mesure de récupérer toutes les versions précédentes des données qu’ils ont supprimées/mises à jour jusqu’à une semaine après la validation des modifications", ce qui implique une certaine surcharge de développement qui, je le pense serait beaucoup plus élevé sur un système n’ayant pas de fonctionnalité intégrée telle que Flashback Query d’Oracle.

36
David Aldridge

Les couches SGBDR pures d'Oracle et de MSSQL offrent principalement un environnement programmable plus abouti que MySQL et InnoDB. T-SQL et PL/SQL ne peuvent pas encore être comparés par les procédures stockées et les déclencheurs MySQL.

Les autres différences sont la syntaxe et de légères différences sémantiques qui rendent les choses plus faciles ou plus difficiles (comme le top 500 par rapport à la limite/offset).

Mais le vrai problème, c’est qu’il existe une tonne d’outils et de services intégrés au-dessus des couches SGBDR de MSSQL (Reporting Services, Analysis Services) et d’Oracle (Data Warehousing, RAC) que MySQL n’a pas (encore).

23
Vinko Vrsalovic

MySQL n'est pas gratuit!

Il est largement admis qu’il est gratuit, mais vous vendez ou distribuez des packages de logiciels qui incorporent MySQL. Il comporte des restrictions assez sévères. Dans ces cas, il est gratuit uniquement pour les projets Open Source ou les organisations à but non lucratif. Si vous parvenez à séparer complètement la base de données et les pilotes du reste de votre application et à forcer votre client à télécharger et à installer MySQL par eux-mêmes, vous êtes probablement satisfait.

Sinon, l'édition "standard" coûte 2 000 dollars par an, ce qui est à peu près comparable au coût d'une licence SQL Server.

Les deux sont de très bonnes bases de données, mais parmi les avantages de SQL Server, il y a:

  • Un langage procédural riche et expressif (T-SQL)
  • Un meilleur optimiseur de requêtes et de meilleures performances dans les environnements d'écriture intensive
  • Un ensemble complet d'outils et de fonctionnalités auxiliaires, comprenant un environnement de programmation, un outil ETL (SSIS), une modélisation dimensionnelle (SSAS), un environnement de reporting (SSRS) et un planificateur de travaux relativement sophistiqué.
  • Débogage interactif des procédures stockées et des fichiers UDF.
  • Un outil de gestion basé sur une fenêtre relativement facile à utiliser qui vous permet d'effectuer la plupart des tâches d'administration de manière "clicky".

De nombreuses personnes s'opposent idéologiquement à l'utilisation des outils Microsoft ou au verrouillage dans un environnement Windows, ce que je peux comprendre. Mais MySQL n'est PAS gratuit pour une utilisation professionnelle, et cela ne semble pas être compris largement.

Pour consulter la politique de MySQL en matière de licences, consultez-la sur son site Web: http://www.mysql.com/about/legal/licensing/index.html

12
Curt

Quelques autres choses qu'Oracle a sur mysql.

  • Les files d'attente
  • ordonnancement interne des travaux
  • langage de procédure stockée mature
  • tables découpées
  • contrôle d'accès et audit fins
  • fonctionnalités de récupération puissantes (par exemple flashback, rman, dataguard)
  • liens de base de données distants
  • application express
9
Matthew Watson

Jusqu'à ce que j'administre des RDBS provenant d'autres fournisseurs Oracle, les lecteurs répétés ne "bloquaient pas les écrivains, mais les écrivains ne bloquaient pas les lecteurs" signifiait peu pour moi. Je ne savais vraiment pas grand chose au sujet du traitement des problèmes de verrouillage en 8 ans en tant que DBA Oracle. 2 ans Informix et 3 ou SQL Server et croyez-moi, j'en sais beaucoup plus sur le verrouillage.

Donc, je dirais qu'en plus des commentaires sur le support et les fonctionnalités non-SGBDR, ajoutez un comportement de verrouillage.

8
Karl

Il y a trop de fonctionnalités à lister. Voir la référence Wikipedia dans le message de nullptr. Mais je suppose que la véritable question posée lors de la réunion est "Pour un développeur, quelle fonctionnalité révolutionnaire MS ou Oracle offre-t-il aux retards de MySQL permettant à MS et Oracle de faire payer leurs systèmes et qui peuvent être utilisés efficacement par notre société? "

Tous les avantages sont vraiment des avantages s'ils correspondent à vos besoins ...

5
ThinkJet

Oracle grappes de tables et grappes de table de hachage à table unique (que vous ne trouverez pas non plus dans SQL Server).

5
Nils Weinander

MySQL n'offrait pas l'environnement de programmation plus riche qu'Oracle et MSSQL, surtout dans les versions antérieures, quand il ne disposait même pas de procédures stockées. De mon point de vue, j'ai tendance à mettre l'essentiel de ma logique métier dans l'application, via les mappeurs DAO ou ORM, etc. Par conséquent, le moteur de base de données sous-jacent est moins important et, en théorie, l'application est transportable. Du point de vue de la gestion, MSSQL offre de nombreux avantages (beaucoup déjà énumérés) qui facilitent grandement la tâche de possession de la base de données. Microsoft fournit également l'excellent et léger SQLExpress pour le développement, que j'ai trouvé facile à utiliser et qui s'intègre parfaitement à Visual Studio.

4
Andy Monis

REMARQUE: je ne peux rien dire sur Oracle. Je ne répondrai donc que pour SQL Server.

Eh bien, bien sûr, des différences mineures dans le moteur de base de données, telles que l'instruction MERGE, BULK INSERT, GROUPING SET, etc.

Mais je pense que le plus gros problème concerne des services tels que Integration Services, Analysis Services et Reporting Services. Ce sont des technologies importantes qui, à mon avis, valent absolument le prix qu’elles coûtent.

4
Maximilian Mayerl

Inspirée par la réponse de ThinkJet, je pense qu’un autre facteur qui intervient est la suivante: "Dans quelle mesure sommes-nous disposés à renoncer à l’indépendance de la base de données afin de permettre un développement plus rapide et moins coûteux d’applications plus performantes?" Si la société insiste sur le fait que tout le code doit être portable entre des bases de données, il est inutile d'utiliser autre chose que le SGBDR le plus simple, et les améliorations et avantages fournis par Oracle et Microsoft ne comptent pour rien.

Il faut très peu pour rompre avec la véritable indépendance des bases de données, et ma philosophie est que vous devriez vous investir sans réserve dans l'exploitation de toutes les fonctionnalités que vous avez payées - améliorations SQL, PL/SQL, etc.

D'autres peuvent différer, bien sûr.

3
David Aldridge

Je pense que la question repose sur l'hypothèse implicite selon laquelle ce sont les fonctionnalités de développement qui permettent à SQL Server/Oracle de facturer. Je soupçonne que c'est plus la mise en œuvre/support.

La sauvegarde à chaud est une fonctionnalité majeure qui mérite d’être payée, du moins pour la plupart des installations.

RAC représente une grande valeur ajoutée pour Oracle: plusieurs serveurs exploitant les mêmes données (mêmes disques) sans aucune réplique complexe. Ce n'est généralement pas évident pour le développeur.

3
Gary Myers

Certaines fonctionnalités Oracle que j'aime vraiment sont

  • Real Application Clusters, un moyen assez puissant pour créer des clusters de bases de données
  • Vues matérialisées rapides et actualisables, un moyen très efficace de stocker et de mettre à jour les résultats de requête
  • Des fonctions analytiques (également appelées fonctions de fenêtre) qui permettent de regrouper des fonctions sur un sous-ensemble des résultats de la requête de manière efficace. Cela peut éviter les auto-jointures dans la plupart des cas.

Autant que je sache, aucun d’entre eux n’est disponible dans MySQL. Et il y a beaucoup plus de fonctionnalités utiles, en particulier dans l'édition d'entreprise et ses options.

1
Karl Bartel