kovaleff - Fotolia
MySQL vs SQL Server : quelles sont les différences
Les bases de données relationnelles MySQL et Microsoft SQL Server ont toutes les deux leurs aficionados mais aussi leur détracteurs. Dans cet article, nous allons analyser ce qui les différencie et nous concentrer sur les fonctions et les coûts.
SQL Server et MySQL font assurément partie des bases de données relationnelles les plus connues du marché des SGBDR. Si aucune ne se détache clairement l’une de l’autre, il apparait toutefois que la base de Microsoft peut constituer le meilleur choix pour certains cas d’usage ou certaines configurations… et vice-versa.
MySQL est par exemple un excellent choix pour les environnements multi-plateformes car la base peut fonctionner à la fois sur Windows, UNIX et Linux. SQL Server, de son côté, est un choix presque naturel pour les DSI ayant déjà opté pour du Windows, ou encore pour ceux qui ont besoin d’effectuer des analyses de données pointues ou doivent migrer certaines de leurs workloads depuis leur datacenter vers Azure.
Voici donc les principales différences :
Microsoft SQL Server : fonctions et prix
La dernière version de la base de données de Microsoft est SQL Server 2016, lancée en juin dernier. L’éditeur de Redmond propose 4 éditions de sa solution, plus une édition Web pour les hébergeurs. Deux de ces éditions, Express et Developer, sont disponibles gratuitement. L’édition Express, une version allégée de la base de données est capable de supporter jusqu’à 10 Go de données. L’édition Developer quant à elle n’est proposée que pour les environnements de tests et de développements.
Les autres éditions sont Enterprise, Standard et Web. La première est livrée avec une suite complète de fonctions et d’outils pour les applications critiques ainsi que pour des opérations analytiques avancées. De son côté, la Standard embarque un champ fonctionnel plus limité et est plus adaptée aux petites configurations. Enfin, l’édition Web est destinée aux seuls hébergeurs, et est accessible via le Cloud.
Microsoft propose des licences Standard et Enterprise calculées par cœur CPU – avec des packs pour 2 cœurs. Comme avec d’autres technologies, les coûts de licence englobent d’autres facteurs, comme certaines ristournes accordées en fonction du volume. Sur le papier, l’édition Enterprise de SQL Server (2 cœurs) est tarifé 14 256 $ contre 3 717 $ pour l’édition Standard (2 cœurs). A cela s’ajoutent les coûts d’une Client Access Licence (CAL) pour chaque utilisateur ou terminal qui se connecte à la base. Une licence CAL coûte 209 $.
MySQL : fonctions et prix
MySQL est détenue par Oracle depuis le rachat de Sun Microsystems en 2010 ; ce dernier avait lui-même racheté la technologie à MySQL AB deux ans auparavant. Dans sa version 5.7, MySQL est disponible dans une édition commerciale payante ou communautaire et gratuite. Il existe trois déclinaisons de MySQL : MySQL Standard Edition, MySQL Enterprise Edition et MySQL Cluster Carrier Grade Edition (CGE).
On retrouve également MySQL Classic, une base de données embarquée proposée uniquement aux ISV ou en OEM. La version MySQL Community Edition est la base disponible sous une licence Open Source GPL. Les 3 premières éditions, qui comprennent aussi des outils de management, sont commercialisées par Oracle.
Les licences commerciales MySQL sont disponibles sous la forme de souscriptions. Les prix varient beaucoup d’une édition à l’autre. Le nombre de sockets est également un facteur clé, tout comme la durée de la souscription. Par exemple, une édition Standard de MySQL (de 1 à 4 sockets) est affichée à 2 000 $ pour une année, tandis que pour une édition Enterprise (1 à 4 sockets), il faut compter 5 000 $ pour la même durée. Une année de souscription à MySQL Cluster CGE (5 sockets ou plus) est vendue 20 000 $.
SQL Server vs MySQL : quid des performances et des capacités de dimensionnement
A une époque, MySQL était vue comme une base de données moins performante que les autres bases relationnelles du marché. Aujourd’hui, toutefois, MySQL est une technologie mature et au champ fonctionnel étendu, à laquelle nombre d’entreprises adossent leurs processus critiques.
Les performances et les capacités de dimensionnement sont généralement mises en avant. Les bases MySQL peuvent facilement passer à l’échelle jusqu’à plusieurs téraoctets. Elles peuvent aussi être optimisées pour prendre en compte des processus transactionnels haute fréquence ou encore de grands volumes de workloads (jusqu’à un milliard de requêtes par an). MySQL propose des fonctions comme les tables en mémoire, le b-tree indexing ou hash indexing pour atteindre des niveaux élevés de performances et de dimensionnement.
Comme c’est le cas pour les autres bases de données d’entreprise, MySQL propose aussi des outils pour la haute disponibilité. Le SGBDR peut être configuré comme un cluster de basculement (failover cluster), mais supporte aussi la réplication rapide. Certains fournisseurs ont également développé des outils pour la haute disponibilité.
De son côté, SQL Server a aussi considérablement évolué avec le temps. Et SQL Server 2016 n’a plus rien à voir avec les versions de la base lancées dans les années 90.
Comme MySQL, SQL Server peut être configurée pour être hautement disponible et est capable de traiter de grandes quantités de workloads.
SQL Server 2016 comprend des fonctions optimisées pour la gestion de la haute disponibilité et des améliorations des tables optimisées en mémoire. Celles-ci ont été développées pour doper les performances et accroitre les capacités de dimensionnement des applications qui se reposent sur la fonction In-Memory OLTP. Toutefois, ces capacités en matière de haute disponibilité, de performances et de dimensionnement étaient déjà inclus aux versions précédentes de la base. Le gros des nouvelles fonctions de SQL Server 2016 réside surtout dans la Business Intelligence (BI), la sécurité et la portabilité vers le Cloud.
Par exemple, la fonction Stretch Database permet de stocker les données très peu sollicitées dans Azure afin de réduire les coûts, tout en les gardant à disposition tout de même – elles restent donc interrogeables. Parmi les nouvelles fonctions analytiques, on retrouve le support du langage R, l’intégration complète de PolyBase, un outil qui permet d’effectuer des requêtes sur des données stockées dans des clusters Hadoop et dans Azure BLOB.
On peut également mettre en avant deux des fonctions de sécurité de SQL Server 2016 : la protection au niveau de la ligne et la fonction Always Encrypted qui chiffre les données en repos ou en déplacement et conserve l’accès des utilisateurs autorisés aux données le plus sensibles.
SQL Server vs MySQL : l’implémentation
Evidemment, que ce soit SQL Server ou MySQL, les deux bases de données supportent le standard SQL, mais chacun avec un nombre d’extensions propriétaires. La conformité aux standards est un critère clé lorsqu’il s’agit de choisir sa base de données. SQL existe depuis 1986 et les standards ont considérablement évolué depuis cette époque.
MySQL supporte les derniers standards SQL ainsi que Open Database Connectivity, des niveaux 0 à 3.51. MySQL peut aussi opérer dans plusieurs modes, comme ANSI, STRICT TRANS TABLES et TRADITIONAL. Il est à noter que MySQL complète SQL via certaines extensions. Ainsi, porter une application MySQL vers SQL Server, ou vers une autre base concurrente, peut demander un peu de travail.
De son côté, Microsoft ne précise pas son niveau de support et de respect des standards dans SQL Server. La base propose des paramètres de compatibilité qui permettent à une instance de devenir compatible avec une version antérieure de la base. L’éditeur de Redmond a aussi développé SQL Server pour supporter la Cloud et la portabilité des applications vers le Cloud. L’idée est de proposer une expérience cohérente que la base soit dans le Cloud ou sur site, ou encore dans les deux.
Notons enfin qu’en 2017, Microsoft a prévu d’ajouter le support de Linux, poussant SQL Server pour la première fois en dehors des frontières du monde Windows – et de grignoter probablement les plates-bandes de MySQL.
Traduit et adapté par la rédaction