IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

MySQL est une « base de données plutôt médiocre », déclare un ingénieur Oracle en partance,
PostgreSQL est une meilleure option pour un SGBD open source, selon lui

Le , par Bruno

200PARTAGES

14  0 
Intégré à Oracle à la suite de l'acquisition par Sun en 2010, MySQL est un système de gestion de base de données relationnelle, distribué sous une double licence GPL et propriétaire. Il fait partie des logiciels de gestion de base de données les plus utilisés au monde avec environ 50 000 téléchargements jour et des installations qui ont dépassé les 12 millions dans le monde. C’est ce SGBDR intégré dans les solutions de plus de 3 000 fournisseurs de logiciels indépendants/OEM, dont Adobe, Alcatel-Lucent, Cisco, General Electric, Hewlett-Packard et Symantec qui est traité de médiocre par l’ancien employé d’Oracle et membre du projet MySQL, Steinar Gunderson, « MySQL est une base de données plutôt médiocre, et vous devriez fortement envisager d'utiliser PostgresSQL à sa place ».

L'équipe MySQL développe la première base de données open source au monde, utilisée par les propriétés, les fournisseurs de cloud computing et les entreprises les plus importantes et les plus innovantes du web, notamment Facebook, Twitter, eBay, Pinterest, Tumblr, Wikipedia et YouTube. MySQL est également intégré dans les solutions de plus de 3 000 fournisseurs de logiciels indépendants/OEM, dont Adobe, Alcatel-Lucent, Cisco, General Electric, Hewlett-Packard et Symantec. Propulsé par l'adoption de la pile LAMP (Linux, Apache, MySQL et PHP/Perl/Python) comme standard de l'industrie pour la création d'applications web. MySQL fait aujourd’hui partie des logiciels de gestion de base de données les plus utilisés au monde, autant par le grand public (applications web principalement) que par des professionnels, en concurrence avec Oracle, PostgreSQL et Microsoft SQL Server.


Sun a racheté MySQL AB dans le cadre de la plus grande acquisition de logiciels libres jamais réalisée. MySQL a été intégré à Oracle après l'acquisition de Sun en 2010. L'équipe MySQL d'Oracle gère tous les aspects de MySQL, notamment l'ingénierie, le marketing, les ventes et le support. Les domaines de produits comprennent MySQL Server et le moteur de stockage InnoDB, MySQL Cluster, MySQL Workbench, MySQL Enterprise Edition Enterprise Monitor et MySQL Connectors. Oracle a accéléré ses investissements dans MySQL.

Avec l'émergence du big data, couplée au passage au cloud computing et à la croissance des technologies mobiles, sociales et web, MySQL est idéalement positionné pour se développer dans certaines des startups et entreprises les plus exigeantes et innovantes de la planète. Cependant, Steinar Gunderson qui travaille actuellement pour Google, sur le navigateur Web Chrome, mais qui a également travaillé dans l'équipe chargée de l'optimisation de MySQL pour Oracle, estime que « MySQL est une base de données plutôt médiocre… ».

Steinar Gunderson a travaillé dans l'équipe chargée de l'optimisation de MySQL pour Oracle, où il a écrit le nouvel exécuteur de MySQL 8.0 ainsi que le nouvel optimiseur de jointure à venir. Pour l’ex-membre de l’équipe MySQL, aujourd’hui chez Google, MySQL 8.0 (avec son numéro de version mineure toujours plus élevé) est un bien meilleur produit que ne l'était la version 5.7. Mais il y a des limites à ce que l'on peut faire déclare Gunderson ; « les changements que d'autres et moi avons effectués amènent l'optimiseur MySQL vers un design assez standard du début des années 2000 avec quelques modifications intéressantes, mais c'est aussi là que ça s'arrête. »


« Venir à MySQL, c'était comme entrer dans un univers parallèle, déclare Gunderson, il y avait beaucoup de gens qui croyaient sincèrement que MySQL était un produit de pointe. En même temps, j'assistais à l'orientation et on m'expliquait comment l'optimiseur fonctionnait en interne, et j'avais vraiment besoin de pauses de choc pour comprendre à quel point presque tout était primitif. Dans un sens, cela ne me dérangeait pas tant que ça ; beaucoup de mauvais code signifie qu'il y a beaucoup de possibilités d'amélioration, et la direction soutenait fortement les grands remaniements. »

Selon Gunderson, certains membres de l’équipe MySQL étaient des hypocrites, présentant MySQL comme parfait. Cependant, la réalité était tout autre chose, « même des choses manifestement folles comme l'exécuteur, où tout était un gros morceau et où tout interagissait avec tout le reste, étaient saluées comme "efficaces" (ce qui n'était pas le cas). »

« Ne croyez pas une seconde que MariaDB est meilleur. Certains membres de l’équipe sont partis parce qu'ils étaient mécontents de la nouvelle gouvernance, pas parce qu'ils se sont soudainement réveillés un jour et ont réalisé le désordre royal qu'ils avaient créé dans le code. » Par exemple, le trieur devait littéralement se soucier de savoir si son entrée provenait d'un balayage de table ou d'un balayage de plage, car il n'y avait pas de modularité.

Tout ce qui n'était pas l'un de ces deux éléments, y compris les jointures, nécessitait de grandes contorsions, estime Gunderson. « Les jointures externes complètes étaient tout simplement impossibles à exécuter dans la conception donnée sans réécrire la requête (MySQL ne les supporte toujours pas, mais au moins maintenant il n'est pas entravé par l'ancienne conception we-can-do-left-deep-plans-only). Et ne me lancez pas sur le système de "tranches", qui est peut-être la conception la plus folle que j'ai jamais vue dans un logiciel réel ».

MySQL ou PostgreSQL ?

PostgreSQL est un système de gestion de base de données relationnelle et objet (SGBDRO). C'est un outil libre disponible selon les termes d'une licence de type BSD. Comme les projets libres Apache et Linux, PostgreSQL n'est pas contrôlé par une seule entreprise, mais est fondé sur une communauté mondiale de développeurs et d'entreprises.

Ce SGBDRO utilise des types de données modernes, dits composés ou enrichis suivant les terminologies utilisées dans le vocable informatique usuel. Ceci signifie que PostgreSQL peut stocker plus de types de données que les types simples traditionnels entiers, caractères, etc. L'utilisateur peut créer des types, des fonctions, utiliser l'héritage de type, etc. Entre 2012 et 2015, PostgreSQL était plus avancé que ses concurrents MariaDB et Firebird, ou propriétaires comme Oracle, MySQL, Sybase, DB2, Informix et Microsoft SQL Server, dans la conformité aux standards SQL.


PostgreSQL est largement reconnu pour son comportement stable, proche d'Oracle, mais aussi pour ses possibilités de programmation étendues, directement dans le moteur de la base de données, via PL/pgSQL. Le traitement interne des données peut aussi être couplé à d'autres modules externes compilés dans d'autres langages. Postgres serait plus lent et posséderait une gestion des connexions plus mauvaise qui nécessite généralement un pooler, mais le moteur actuel et ses performances sont plébiscités par un grand nombre de développeurs.

« J'ai vraiment aimé MySQL (et plus récemment MariaDB), et j'ai connu récemment quelques désagréments importants avec Postgres, et ce, pour un ensemble de raisons complètement différentes », déclare un internaute. « La réplication logique est la plus importante. MySQL dispose de la réplication logique et "mixte" depuis une décennie. PostgreSQL n'a intégré la réplication logique que récemment, et c'est encore très ennuyeux. Il ne réplique pas les déclarations de changement de schéma, donc celles-ci doivent être appliquées indépendamment par un système externe, et bien sûr, elles ne seront pas programmées exactement au bon moment, donc la réplication restera bloquée », poursuit-il.

Selon ce programmeur, Postgres aurait besoin d'un pooler/proxy de connexion externe, MySQL pas si tôt. « Je suis un développeur d'infrastructure, pas un DBA ou un utilisateur SQL avancé… Si vous gardez les choses simples afin d'avoir confiance en l'efficacité et les performances, alors MySQL fonctionne très bien selon mon expérience, et Postgres, malgré son exactitude académique et son ensemble de fonctionnalités de requêtes avancées, a été très ennuyeux. », conclut-il.

Source : Sesse

Et vous ?

Avez-vous expérimenté les SGBD MySQL et PostgreSQL ? Lequel préférez-vous ?

Pensez-vous que MySQL est médiocre ? Quel est votre avis sur la réaction de l'ingénieur Oracle en partance ?

« PostgreSQL, malgré son exactitude académique et l'ensemble de ses fonctionnalités, de ses requêtes avancées, est très ennuyeux », partagez-vous cet avis ?

Voir aussi :

MySQL abandonne les terminologies "master", "slave", "whitelist", "blacklist" et indique que ces modifications seront implémentées dans tous les produits MySQL dès les prochaines versions

MariaDB SkySQL : La nouvelle mise à jour majeure de la base de données Cloud intègre les bases SQL distribuées, pour garantir évolutivité et élasticité

PostgreSQL 14 est disponible avec l'amélioration des performances, la prise en charge étendue des données non structurées JSON et l'amélioration des capacités en matière de procédures stockées

Depuis 20 ans, PostgreSQL aurait mal utilisé fsync(), compromettant la cohérence des données, des solutions ont été proposées au FOSDEM 2019

40 % des professionnels IT veulent accélérer leur migration vers le Cloud, une étude de l'impact du COVID-19 sur l'adoption du Cloud par MariaDB

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de walfrat
Membre émérite https://www.developpez.com
Le 07/12/2021 à 9:27
Sauf erreur de ma part, MySQL à la base, a toujours voulu être une base de données "plutôt médiocre" ou plutôt.. "modeste", dont l'usage était avant tout d'être simple à installer et simple à utiliser pour pouvoir faire des sites web qui ont un ensemble de données plutôt modeste.

Je ne sais pas ce qu'il en est en 2021, mais à l'époque ou j'ai fais mes premier pas en programmation (2007 phpMyAdmin et MySQL), il était de notoriété que MySQL ne tenait pas les perfs des autres SGBD .. "pro ?" et les professionnels de l'époque disaient tous que c'était normal, car ce n'étais pas l'objectif de MySQL de concurrencer Oracle ou PostgreSQL sur les performances.
22  0 
Avatar de FatAgnus
Membre chevronné https://www.developpez.com
Le 08/12/2021 à 12:08
Citation Envoyé par SQLpro Voir le message

Benchmark SIG : https://g-ernaelsten.developpez.com/...-performances/
PostGreSQL en moyenne 10 fois plus lent que SQL Server
Notre ami SQLpro s'entête à tester et à mesurer les performances de PostgreSQL sous Windows alors que PostgreSQL fonctionnera certainement plus vite sous Linux que sous Windows comme l'affirme Magnus Hagander l'une des personnes qui a porté PostgreSQL sous Windows sur Server Fault  : « PostgreSQL fonctionnera certainement plus vite sous Linux que sous Windows (et je dis cela en tant que l'un des gars qui a écrit le portage Windows de celui-ci...) Il est conçu pour une architecture de style Unix, et implémente cette même architecture sous Windows, ce qui signifie qu'il fait un certain nombre de choses que Windows n'est pas conçu pour faire correctement. Il fonctionne bien, mais il n'est pas aussi performant. ».

Donc le benchmark de notre ami SQLpro est malheureusement sans intérêt, à part si comme notre ami SQLpro on s'est donné comme mission de faire de la propagande SQL Server au détriment des bases de données open source.

Si SQL Server est vraiment plus performant que PostgreSQL, qui après tout est possible, pourquoi notre ami SQLpro biaise-t-il ses benchmarks en exécutant PostgreSQL sous Windows alors qu'il est parfaitement admis que la version Windows est bien plus lente que la version Linux ?
16  1 
Avatar de GLDavid
Expert confirmé https://www.developpez.com
Le 07/12/2021 à 8:10
Bonjour

Mouais... Forcément, quelqu'un qui part de sa boîte va raconter que son expérience là-bas était pauvre. Bref, un parti pris.
Après, on n'est pas dupe. Nous savions que ce rachat de MySQL par Oracle n'avait d'autre objectif que de supprimer pour Oracle un concurrent open-source qui avait un certain succès.
Bien sûr que les développeurs savaient que les performances de MySQL n'étaient pas top, mais, cela suffisait pour avoir un SGBD sérieux et le faire interagir avec son site web du temps de la grande mode LAMP (Linux Apache MySQL PHP).
Son commentaire sur PostgreSQL est une évidence. Mon seul souhait est que PostgreSQL reste libre de droit.

@++
14  0 
Avatar de kedare
Membre chevronné https://www.developpez.com
Le 07/12/2021 à 11:01
Citation Envoyé par Jsaintyv Voir le message
Personnellement, je trouve que MS Sql Server est bien en-dessous de MySQL & Postgres 😊.
Honnêtement, on est tous d’accord que s’il n’y avait pas Microsoft devant le nom de SQL Server, on n’en aurait jamais entendu parler :-p
Hmm c'est juste pour troll ?
Pour avoir gère des infra SQL Server / MySQL et PostgreSQL plutôt modeste (quelques centaines de GB), SQL Server était de loins le plus complet en terme de features, le plus performant et simple d'administration (merci l'excellent tooling), surtout dès que tu commence a vouloir de la H.A (avec failover auto et tout ca).

Après oui c'est pas le même prix.
10  0 
Avatar de vanquish
Membre chevronné https://www.developpez.com
Le 09/12/2021 à 9:53
Citation Envoyé par Jeff_67 Voir le message
Ajouté à cela, le logiciel est longtemps resté librement distribuable.
En réalité, la licence mySQL ne permet pas un déploiement aussi libre que cela.
Bien sur je peux le mettre sur mon serveur en téléchargement gratuit à coté d'autres logiciels libres.
Je peux en installer autant d’instances que je veux en interne dans ma structure.

Mais beaucoup de distributions violent la licence qui a une vue très restrictive du GPL, puisque MySQL considère que si vous distribuez votre application en même temps que MySQL et que votre application nécessite MySQL, alors votre application et MySQL forment un tout dont l'ensemble doit être GPL.

Cela ne date pas d'Oracle. Cela avait déjà posé un problème pour le bundle LAMP puisque le les 4 produits (Linux/Apache/MySQL/Php) n'étaient pas tous sous GPL.
La version community a toujours été un produit d'appel pour la version purement commerciale.

Beaucoup de petits éditeurs considèrent MySQL/MariaDB comme un produit gratuit qu'ils peuvent distribuer gratuitement avec leur application, mais ils ont tord (à moins que leur application soit 100% GPL).

Le rachat d'Oracle a fait passer la licence commerciale de 500€/perpétuel à 5000€/an, mais la philosophie a toujours été la même et s'est inévitablement propagée au fork MariaDB.

Je distribuais très régulièrement des licences commerciales de mySQL. Après le rachat par Oracle, je suis passé à Firebird.
Comme je ne commandais plus de licences, j'ai eu un appel téléphonique étonné d'un commercial d'Oracle qui, plus menaçant que commercial, m'a fermement rappelé les conditions de distribution de mySQL.

Je continue de considérer MariaDB comme plus performant que Firebird (même si l'écart se tasse depuis la V3), mais en terme de liberté de distribution, il n'y a pas photo : Firebird est loin devant.
9  0 
Avatar de blbird
Membre chevronné https://www.developpez.com
Le 09/12/2021 à 19:49
Citation Envoyé par vanquish Voir le message
EJe distribuais très régulièrement des licences commerciales de mySQL. Après le rachat par Oracle, je suis passé à Firebird.
Comme je ne commandais plus de licences, j'ai eu un appel téléphonique étonné d'un commercial d'Oracle qui, plus menaçant que commercial, m'a fermement rappelé les conditions de distribution de mySQL.
Oracle est une véritable plaie en termes de licences, agressifs et absolument pas compréhensifs. A bannir autant que possible de tout S.I.
9  0 
Avatar de Xavier_d
Membre à l'essai https://www.developpez.com
Le 12/12/2021 à 11:02
POSTGRES est définitivement plus qu'une alternative à Oracle ou SQLServer, n'en déplaise à certains DBA frileux ou adeptes du clickodrome qui le trouvent "ennuyeux".
Au contraire, et c'est même sans doute là que l'on reconnait les vrais professionnels, hihihi.
Soulignons que la question de la performance comparée ORACLE/PostGresql n'est digne que des commerciaux du premier et un faux débat à une époque où le prix de la licence Oracle équivaut à celui d'une batterie de machines physiques hébergeant une armée de machines virtuelles.
Un DBA (et j'en suis depuis ORACLE V4 en 1985) arrivera toujours à faire marcher un SGBD, surtout s'il sait (faire) paralléliser et utiliser les ressources matérielles contemporaines citées ci-dessus.
Notons que le mode de gestion de la mémoire cache de PostGres partageant le cache de fichiers système impose une machine virtuelle dédiée à chaque instance, ce qui est décidément le sens de l'histoire.
Tout ce qui précède est valide dans un contexte sérieux : bases de plusieurs (dizaines de) To, contenant des tables partitionnées de plusieurs milliards d'enregistrements et avec un taux d'insertion dépassant 1000 enrts/s.
Et c'est précisément là que PostGres n'est pas du tout ennuyeux, et permet de déchainer sa créativité, à la différence d'Oracle où il faut sans cesse aller voir son chef ou son client pour une improbable extension de licence de ceci ou de celà.
Sinon, plus petit, il y a ce que vous préférez à un moment donné, et ce pourra être n'importe quoi : Mysql (qui appartient à Oracle), MariaDB, Access (oui, oui, qui peut s'avérer très amusant), Sqllite...
En revanche, migrer soi-même d'Oracle à PostGresql peut être une galère, mais ça existe, des sociétés spécialisées le font assez bien.
Il faut donc faire virer leur cuti aux développeurs (mais yapa la fonction COUNT(*) ?) et aux DBA (zone de confort, invitation aux grand-messes Oracle annuelles) AVANT la conception du projet.
Terminons en précisant justement que sur un site important, le coût de licence/maintenance d'Oracle peut représenter le salaire de plusieurs ingénieurs.
Alors autant payer des salaires à des jeunes (ou pas) en France qu'enrichir Larry Ellison, non ?
10  1 
Avatar de koyosama
Membre éprouvé https://www.developpez.com
Le 07/12/2021 à 13:29
Les gens ont un peu la memoire courte, a une epoque, la seul base de données pour les debutants c’était MySQL. Apres en tant que professionnel, on peut choisir.
Je pense que celui qui est devenu le plus répandu est celui qui a offert une IHM, meme aujourd'hui postgres, pG admin c'est pas ouf. Et les outils autour de Windows ne sont pas ouf non plus.

Mais quand j'ai commence la programmation, c’était le seul sans prise de tete.

Est-ce que moi a l’époque en tant qu’étudiant ou hobbyiste, avoir des licenses SQL Server ou Oracle c’était pas simple. Je sais que SQL Server existe en version lite, il y a aussi postgres, mais franchement c'est un peu la misère. Apres je suis sur qu'on a tous essayer WAMP, MAMP, XAMP, EasyPHP (pour les plus malchanceux).

Non MySQL devrait être au pantheon pour avoir démocratiser et former les développeurs d'une generation.
C'est pas la meilleure base de données, mais juste pour faire une pauvre base, c'est le truc qu'il fallait. Apres je ne serais pas surpris que MySQL meurt, Oracle c'est quand meme une des entreprises des plus maléfique je connais.
Et puis les debutants ne maîtrisent pas toujours l'installation de la base de données mais le code avant. En plus les hébergeur web le démocratisé plus.
8  0 
Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 08/12/2021 à 2:43
Pensez-vous que MySQL est médiocre ? Quel est votre avis sur la réaction de l'ingénieur Oracle en partance ?
En fait MySQL est intéressant pour avoir de la performance sur des transactions simples, et à très faible cout. Cependant cet usage est désormais aussi concurrencé par les bases noSQL comme par exemple MongoDB qui a le vent en poupe.
PostgreSQL est un produit intéressant, plus complet et plus riche que MySQL, mais pas forcément plus performant pour les transactions simples et massives, c'est pour cette raison que MySQL reste très utilisé par d'énormes sites web qui multiplient les serveurs à base de MySQL.

Citation Envoyé par Jsaintyv Voir le message
Personnellement, je trouve que MS Sql Server est bien en-dessous de MySQL & Postgres 😊.
Honnêtement, on est tous d’accord que s’il n’y avait pas Microsoft devant le nom de SQL Server, on n’en aurait jamais entendu parler :-p
Au départ SQL Server c'est un produit nommé Sybase qui a été porté vers Windows, puis amélioré.
Sybase était considéré comme un produit haut de gamme, pour UNIX, concurrent d'Oracle.
C'est pas faux de dire que le produit a été très vulgarisé grâce au Marketing de Microsoft, à tel point que du coup c'est des années après que SQL Server a été porté sous Linux.

SQL-Server est surtout utilisé dans les sociétés qui utilisent le stack Microsoft : Windows, SQL Server, exchange, Office, C#, Visual Studio, etc...
Sur les serveurs Web c'est toujours largement Linux et Mysql (parfois PostgreSQL) qui prédomine largement.
9  1 
Avatar de walfrat
Membre émérite https://www.developpez.com
Le 08/12/2021 à 9:30
Citation Envoyé par SQLpro Voir le message
Je serais curieux d'avoir ces référence de bases de données de plusieurs To. En effet je n'en n'ai jamais vu une seule fonctionner... Malgré de très nombreux audits d'entreprise.... En effet qu dessus de quelques dizine de Go dans une même base, MySQL rend l'âme avec le célèbre message "MySQL ha gone away..."

Dànc, des salaires en plus pour cette optimisation qui généralement coutent plus cher à l'entrprise que le paiement d'une licence... Un informaticien coutant environ 5000€ par mois à l'entreprise en comptant les charges et l'infrastructure (loyers, outils, licences...)

Va donc dire a ton patron que les performances ne l’intéresse pas et que donc il doit payer plus cher d'électricité par exemple.... !

Encore une analyse débile sur l'infrastructure. Un SGBDR possède un fonctionnement particulier qui est incompatible avec la plupart des autres applications et même avec une autre instance de lui même du fait de la concurrence d'accès !

Ne pas comprendre le B A BA de ces principe prouve que votre savoir sur ce sujet est d'une vacuité intense !

A +
Bien que le ton laisse à désirer, je pense que les downvotes ne sont absolument pas justifié.

Aux dernière nouvelles que j'avais, la "limite physique" de données qu'une instance des meilleurs SGBDR considérée 5To, ceci a cause des contraintes impliquant l'utilisation d'un SGBD relation (ACID).


Edit : N'ayant plus l'affirmation en tête, je vais nuancer, 5To était plutôt une sorte de répère ou une instance unique de SGBDR pour un usage général (en termes de données, concurrences d'accès) commence à montrer ses limites. Evidemment on peut aller plus loin avec des solutions sur mesures ou des cas d'usage spécifiques. (+répartition de données sur plusieurs serveur etc etc).

Je ne peux donc qu'être que peu convaincu quand je vois quelqu'un balancer que MYSQL, mais aussi un autre SGBD peut gère des centaines de milliards d'enregistrements et des centaines de terraoctets en une seule instance est très suspect. Certes, c'est dit d'une façon qu'on est pas sur que tout soit une seule instance de MYSQL ou plusieurs tournant séparément mais franchement sans plus d'infos, ça manque de crédibilité.

Enfin vouloir faire croire que tu peux faire tourner des milliards d’enregistrement correctement sans DBA, quelque soit le SGBD, en supposant que ton SGBD est pas juste une sorte de table de log avec une seule table et 4 colonnes de texte, c'est juste hilarant.

Je m'estime déjà comptant en tant que développeur de ne pas avoir peur de frôler le million d'enregistrement sur les tables les plus chargées d'un schéma de plusieurs dizaine de tables, tant que je peux posé le schéma d'une base de données convenablement, alors faire genre qu'on peut s'improviser de gérer une BDD de la taille de facebook ou Twitter juste avec un dev full stacks, juste... non.
7  0