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

MySql :MyISAM contre Inno DB !

La principale différence est qu'InnoDB prend en charge les transactions alors que MyISAM ne le fait pas.

Il existe de nombreuses autres différences, mais les plus courantes que je connais sont :

  • MyISAM est généralement considéré comme plus rapide pour la recherche, mais les récentes améliorations d'InnoDB suppriment cette différence et améliorent les performances des charges de travail à haute simultanéité
  • InnoDB prend en charge les transactions alors que MyISAM ne le fait pas
  • InnoDB prend en charge l'intégrité référentielle alors que MyISAM ne le fait pas
  • InnoDB gère les index un peu différemment, stockant la clé primaire dans le cadre de chaque index (ce qui fait que les index prennent plus de place sur le disque, mais rend également un index de couverture plus probable)
  • MyISAM effectue un verrouillage au niveau de la table tandis qu'InnoDB peut effectuer un verrouillage au niveau de la ligne
  • Différents paramètres de mémoire/tampon/index sont utilisés dans les fichiers de configuration MySQL
  • On dit généralement qu'InnoDB offre une meilleure récupération après un crash
  • Comme mentionné dans une autre réponse, les données sont stockées différemment sur le disque. Je crois qu'InnoDB est configurable dans ce domaine et peut avoir un fichier par table, etc. si nécessaire

Je suis sûr qu'une recherche sur Google ou sur le site MySQL fera apparaître de nombreuses autres différences plus en détail.