{"id":328,"date":"2011-08-20T08:20:06","date_gmt":"2011-08-20T08:20:06","guid":{"rendered":"http:\/\/www.extradrm.com\/?p=328"},"modified":"2011-08-20T08:20:06","modified_gmt":"2011-08-20T08:20:06","slug":"myisam-innodb-differences","status":"publish","type":"post","link":"https:\/\/www.extradrm.com\/?p=328","title":{"rendered":"MyISAM \/ InnoDB diff\u00e9rences"},"content":{"rendered":"<p>On se pose souvent la question sur l&#8217;utilisation de MyISAM ou d&#8217;InnoDB pour une base de donn\u00e9es MySQL. Cet article d\u00e9crit rapidement les principaux avantages et inconv\u00e9nients de ces deux moteurs de stockage.<\/p>\n<p>&nbsp;<\/p>\n<h3>1. MyISAM<\/h3>\n<p>Les avantages :<\/p>\n<ul>\n<li>tr\u00e8s rapide pour les requ\u00eates de type SELECT ou INSERT<\/li>\n<li>il supporte les index fulltext : permet d&#8217;effectuer des recherches sur des mots en se basant sur un index sp\u00e9cifique, acc\u00e9l\u00e9rant ainsi les recherches<\/li>\n<li>il g\u00e8re les conflits d&#8217;acc\u00e8s (ou lock) : permet de verrouiller une table pour des op\u00e9rations bien pr\u00e9cises<\/li>\n<li>tr\u00e8s facile \u00e0 administrer : possibilit\u00e9 de recopier directement les fichiers d&#8217;un serveur vers un autre, support des tables compress\u00e9es &#8230;<\/li>\n<\/ul>\n<p>Les inconv\u00e9nients :<\/p>\n<ul>\n<li>il ne supporte pas les transactions<\/li>\n<li>il ne supporte pas les cl\u00e9s \u00e9trang\u00e8res<\/li>\n<\/ul>\n<p>Note : en plus du fichier .frm, chaque table est repr\u00e9sent\u00e9e par un fichier de donn\u00e9es .myd (MYisamData) et un fichier d&#8217;index .myi (MYisamIndex).<\/p>\n<h3>2. InnoDB<\/h3>\n<p>Les avantages :<\/p>\n<ul>\n<li>il supporte ACID : permet d&#8217;assurer que chaque enregistrement sera compl\u00e8tement r\u00e9ussi, ou compl\u00e8tement \u00e9chou\u00e9, ainsi les risques d&#8217;erreurs sont impossibles, m\u00eame en cas de panne<\/li>\n<li>il g\u00e8re les transactions (instructions sql BEGIN, COMMIT, ROLLBACK &#8230;)<\/li>\n<li>il supporte les cl\u00e9s \u00e9trang\u00e8res et les int\u00e9grit\u00e9s r\u00e9f\u00e9rentielles<\/li>\n<li>il poss\u00e8de un syst\u00e8me de r\u00e9cup\u00e9ration automatique en cas de crash<\/li>\n<\/ul>\n<p>Les inconv\u00e9nients :<\/p>\n<ul>\n<li>il ne permet pas les index fulltext<\/li>\n<li>son administration est un peu plus complexe (gestion de tablespace, param\u00e8tres suppl\u00e9mentaires dans le my.cnf &#8230;)<\/li>\n<li>le moteur de stockage est plus lent que d&#8217;autres et gourmand en ressources m\u00e9moires et en espace disque<\/li>\n<\/ul>\n<p>Note : chaque table est repr\u00e9sent\u00e9e par un fichier .frm.<\/p>\n<h3>3. Changement du moteur de stockage<\/h3>\n<p>On gardera \u00e0 l&#8217;esprit que le choix du moteur n&#8217;est jamais d\u00e9finitif. Il peut \u00eatre chang\u00e9 dynamiquement avec la commande ALTER TABLE comme ceci :<\/p>\n<blockquote><p>ALTER TABLE maTable1 ENGINE=INNODB;<br \/>\nALTER TABLE maTable2 ENGINE=MYISAM;<\/p><\/blockquote>\n<p>Ce syst\u00e8me permet notamment d&#8217;utiliser plusieurs types de stockage pour diff\u00e9rentes tables d&#8217;une m\u00eame base de donn\u00e9es. Cela permettra dans certains cas d&#8217;obtenir les meilleurs performances et avantages.<\/p>\n<h3>4. Conclusion<\/h3>\n<p>Pour conclure, on optera pour InnoDB principalement lorsque l&#8217;on utilisera un syst\u00e8me d&#8217;information qui n&#8217;admet pas les erreurs ou qui doit utiliser des cl\u00e9s \u00e9trang\u00e8res ou des int\u00e9grit\u00e9s r\u00e9f\u00e9rentielles.<\/p>\n<p>MyISAM restera quant \u00e0 lui le meilleur choix dans le cas o\u00f9 l&#8217;on fait principalement des requ\u00eates de lecture ou d&#8217;insertion.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>On se pose souvent la question sur l&#8217;utilisation de MyISAM ou d&#8217;InnoDB pour une base de donn\u00e9es MySQL. Cet article d\u00e9crit rapidement les principaux avantages et inconv\u00e9nients de ces deux moteurs de stockage. &nbsp;&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":2845,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[35,25],"tags":[],"youtube_video":null,"_links":{"self":[{"href":"https:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/posts\/328"}],"collection":[{"href":"https:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.extradrm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=328"}],"version-history":[{"count":0,"href":"https:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/posts\/328\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/media\/2845"}],"wp:attachment":[{"href":"https:\/\/www.extradrm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.extradrm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.extradrm.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}