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

Dois-je utiliser les tables MyISAM ou InnoDB pour ma base de données MySQL ?

Toujours utiliser InnoDB par défaut.

Dans MySQL 5.1 plus tard, vous devriez utiliser InnoDB. Dans MySQL 5.1, vous devez activer le plugin InnoDB . Dans MySQL 5.5, le plugin InnoDB est activé par défaut, il suffit donc de l'utiliser.

Il y a des années, le conseil était que MyISAM était plus rapide dans de nombreux scénarios. Mais ce n'est plus vrai si vous utilisez une version actuelle de MySQL.

Il peut y avoir des cas exotiques où MyISAM fonctionne légèrement mieux pour certaines charges de travail (par exemple, des analyses de table ou des travaux INSERT à volume élevé), mais le choix par défaut doit être InnoDB, sauf si vous pouvez prouver vous avez un cas que MyISAM fait mieux.

Les avantages d'InnoDB, outre la prise en charge des transactions et des clés étrangères généralement mentionnées, incluent :

  • InnoDB est plus résistant à la corruption de table que MyISAM.
  • Verrouillage au niveau de la ligne. Dans MyISAM, les lecteurs bloquent les rédacteurs et vice-versa.
  • Prise en charge d'un grand pool de mémoire tampon pour les données et les index. Le tampon de clé MyISAM est uniquement pour les index.
  • MyISAM stagne ; tous les développements futurs se feront dans InnoDB.

Voir aussi ma réponse à MyISAM versus InnoDB