Les pièges de l'utilisation de MySQL comme choix de base de données? [fermé]


20

J'ai lu en ligne à plusieurs reprises que MySQL est une mauvaise base de données. Les endroits que j'ai lus incluent des discussions sur Reddit, mais ils ne semblent jamais se pencher sur la raison pour laquelle c'est un mauvais produit.

Y a-t-il du vrai dans cette affirmation? Je ne l'ai jamais utilisé au-delà d'un scénario CRUD très simple, et c'était pour un projet universitaire durant ma deuxième année.

Quels pièges, le cas échéant , y a-t-il lors du choix de MySQL comme base de données?


7
Le principal écueil, bien sûr, est que les fanatiques de Postgres essaieront de vous rendre incertain quant à votre choix.
Dan Ray

Wikimedia l'utilise, donc ça ne devrait pas être trop mal.
Arlen Beiler

Réponses:


32

Il existe deux types de pièges, ceux liés à l'utilisation de MySQL comme version de RDBMS et ceux liés à l'utilisation d'un RDBMS au lieu d'autres types de bases de données.

Utiliser MySQL au lieu des SGBDR alternatifs:

  • Voir ce tableau de comparaison de wikipedia pour diverses comparaisons de MySQL avec d'autres SGBDR.
  • Vous préférerez très probablement Microsoft SQL Server si vous créez une application Web ASP.NET, car le système est conçu pour bien fonctionner ensemble, je crois pour les développeurs et les responsables informatiques.
  • Vous pouvez préférer Oracle si vous avez besoin d'une configuration de base de données plus avancée impliquant le clustering (Oracle RAC) ou des procédures de base de données avancées. Non pas que MySQL ne prenne pas en charge de nombreuses fonctionnalités, mais d'après ce que j'ai vu, vous êtes beaucoup plus susceptible de trouver un DBA expérimenté qui connaît ce genre de choses pour Oracle que MySQL.
  • Voir cette question à SO pour des comparaisons approfondies de PostgreSQL à MySQL qui le disent mieux que moi.
  • Encore plus SO: Inconvénients de mysql par rapport aux autres bases de données

Utiliser des SGBDR au lieu d'autres types:

Cela étant dit, MySQL est une excellente base de données, et je n'ai pas travaillé dans une entreprise au cours des 8 dernières années qui ne l'a pas utilisée, dans une grande variété d'applications Web (telles que le commerce électronique, les sites Web / applications , entreprise / B2B, jeux web). Pour une grande majorité des cas d'utilisation d'applications Web typiques, c'est un excellent choix.


4
Excellente réponse, en particulier pour MySQL vs RDBMS et RDBMS vs NoSQL
Josh K

1
SQL Server possède également le clustering et les fonctionnalités avancées. Mais vous pensez que vous aurez plus de mal à trouver un expert en base de données mySQL capable de gérer de telles choses ou même de savoir comment les concevoir. Ces personnes se spécialisent principalement dans Oracle, db2 ou SQL Server.
HLGEM

1
@HLGEM, merci d'avoir clarifié cela, je voulais montrer les atouts d'Oracle, pas que d'autres SGBD ne prennent pas en charge ces fonctionnalités. SQL Server est absolument capable dans ces domaines, il a juste l'inconvénient naturel de la dépendance de Windows pour une entreprise qui n'utilise Windows pour rien d'autre.
Nicole

1
c'est absolument vrai, la dépendance de Windows blesse SQL Server.
HLGEM

8

MySQL est maintenant sous le contrôle d'Oracle - bien qu'open source, ils décident toujours de la direction du projet et de ce qui y entre.

En termes d'être une mauvaise base de données, non, c'est juste «plus simple» que d'autres.

Si vous cherchez des faiblesses, je les signalerai pour vous, prenons l'exemple de PostgreSQL.

  1. MySQL manque de types de conteneurs et de tableaux.
  2. MySQL manque de vraies séquences (elles utilisent l'incrémentation automatique) - Les séquences Postgres permettent à plusieurs tables d'utiliser une seule séquence afin que vous puissiez garantir la cardinalité sur plusieurs tables.
  3. Postgres est conforme à ACID, MySQL est partiellement conforme.
  4. Postgres implémente la variation des caractères et le texte de la même manière (Toast Tables) - cette approche serait la plupart diraient meilleure que MySQL.
  5. Postgres n'a qu'un seul backend de stockage - cela signifie que vous êtes assuré d'avoir les mêmes fonctionnalités partout.
  6. Postgres autorise les fonctions côté serveur écrites en TCL, Python, R et Perl.
  7. Postgres a un bon support pour les pilotes asynchrones en Python - je pense que c'est un peu hasardeux avec MySQL

6

Historiquement, la prise en charge des transactions était faible et les transactions sont importantes si vous devez conserver une base de données cohérente. De nos jours, le gros coup est qu'Oracle en est le propriétaire.


4

MySQL a longtemps été plus une base de données "jouets". Il ne gère pas les sous-sélections imbriquées, ne prend pas en charge le partitionnement des données, n'offre pas plusieurs niveaux d'isolement des transactions, ne prend pas en charge les déclencheurs ou les procédures stockées - beaucoup de choses. Beaucoup de gens venant d'Oracle ou de SQL Server l'ont rejeté.

Je pense que la vraie raison pour laquelle vous ne voyez pas beaucoup de listes des lacunes de MySQL est qu'il a une base de fans plutôt enragée qui les supprime ou les retire de toute mention publique. Je sais que chaque fois que j'ai mentionné des problèmes que j'ai rencontrés, les réponses ont tendance à être extrêmement négatives.


3

MySQL est compatible ACID lorsqu'il est utilisé avec le moteur de stockage InnoDB - aucune raison de ne pas le faire. MySQL est donc conforme ACID (à partir des versions 5.5, InnoDB est le moteur de stockage par défaut).

MySQL obtient beaucoup de mauvaise presse car il est souvent utilisé (ou était jusqu'à l'avènement de NoSQL) comme le SGBDR de choix par des personnes qui avaient à peine besoin d'une base de données (et peut-être avaient des compétences limitées en SGBDR) et l'ont donc utilisé dans un environnement plutôt maladroit manière.

J'ai beaucoup utilisé MySQL et depuis l'arrivée de 5.x, il y a très peu de raisons de s'en plaindre pour 95% des installations qui ont des exigences moyennes.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.