Mysql
 sql >> Base de données >  >> RDS >> Mysql

Moteur MySQL préféré – MyISAM ou InnoDB

La plupart de mon temps est consacré à travailler avec mes clients sur le Vérification complète des performances de la base de données . La meilleure partie de l'engagement du bilan de santé est que je rencontre beaucoup de nouvelles personnes et partage beaucoup d'histoires différentes. Récemment, l'un des DBA qui travaille également sur MySQL avec SQL Server m'a demandé quel est mon moteur préféré pour MySQL - MyISAM ou InnoDB ?

Je pense que c'est une question très intéressante à poser en 2019 car je pense que l'équipe MySQL elle-même a déjà pris la décision de celle-ci depuis la version 5.5 de MySQL. Ils ont déjà sélectionné InnoDB comme moteur par défaut depuis MySQL 5.5.

Voici mes cinq principales raisons d'opter pour InnoDB

  • InnoDB prend en charge le verrouillage au niveau des lignes, ce qui est essentiel pour les performances. MyISAM ne prend en charge que le verrouillage au niveau de la table, ce qui crée un énorme goulot d'étranglement lorsque votre table est mise à jour fréquemment.
  • InnoDB implémente des transactions, qui sont essentielles sur une application de base de données critique qui est impliquée dans la banque ainsi que dans le commerce électronique.
  • InnoDB prend en charge les contraintes de relation comme les clés étrangères, ce qui la rend plus conviviale pour les bases de données relationnelles par rapport à MyISAM qui n'en prend en charge aucune.
  • InnoDB prend en charge les transactions ACID (atomicité, cohérence, isolation, durabilité), ce qui le rend entièrement conforme aux règles RDBMS que MyISAM ne prend pas en charge.
  • InnoDB gère les index et la table de base à l'aide d'un gestionnaire de stockage en interne avec pool de mémoire tampon, ce qui est extrêmement efficace en termes de performances. MyISAM utilise des fichiers disque principalement pour la table de base, qui n'est pas optimisée pour les performances.

Ma suggestion est que si vous devez faire la sélection du moteur, soit vous laissez votre MySQL décider du moteur par défaut, soit vous sélectionnez InnoDB qui possède les dernières fonctionnalités de RDBMS.

J'écris actuellement un livre blanc sur ce sujet, une fois le livre blanc publié, je le partagerai avec vous tous afin que vous puissiez le lire à ce sujet.