Différences entre les versions de « Mysql MyIsam & Innodb »
De BlaxWiki
Aller à la navigationAller à la recherche (Page créée avec « === MyISAM === Les avantages : <pre> très rapide pour les requêtes de type SELECT ou INSERT il supporte les index fulltext : permet d'effectuer des recherches s... ») |
|||
| Ligne 41 : | Ligne 41 : | ||
ALTER TABLE maTable2 ENGINE=MYISAM; | ALTER TABLE maTable2 ENGINE=MYISAM; | ||
Ce système permet notamment d'utiliser plusieurs types de stockage pour différentes tables d'une même base de données. Cela permettra dans certains cas d'obtenir les meilleurs performances et avantages. | Ce système permet notamment d'utiliser plusieurs types de stockage pour différentes tables d'une même base de données. Cela permettra dans certains cas d'obtenir les meilleurs | ||
<pre> | performances et avantages. | ||
</pre> | |||
=== Conclusion === | === Conclusion === | ||
Version du 15 avril 2013 à 17:14
MyISAM
Les avantages :
très rapide pour les requêtes de type SELECT ou INSERT
il supporte les index fulltext : permet d'effectuer des recherches sur des mots en se basant sur un index spécifique, accélérant ainsi les recherches
il gère les conflits d'accès (ou lock) : permet de verrouiller une table pour des opérations bien précises
très facile à administrer : possibilité de recopier directement les fichiers d'un serveur vers un autre, support des tables compressées ...
Les inconvénients :
il ne supporte pas les transactions
il ne supporte pas les clés étrangères
Note : en plus du fichier .frm, chaque table est représentée par un fichier de données .myd (MYisamData) et un fichier d'index .myi (MYisamIndex).
InnoDB
Les avantages :
il supporte ACID : permet d'assurer que chaque enregistrement sera complètement réussi, ou complètement échoué, ainsi les risques d'erreurs sont impossibles, même en cas de panne
il gère les transactions (instructions sql BEGIN, COMMIT, ROLLBACK ...)
il supporte les clés étrangères et les intégrités référentielles
il possède un système de récupération automatique en cas de crash
Les inconvénients :
il ne permet pas les index fulltext
son administration est un peu plus complexe (gestion de tablespace, paramètres supplémentaires dans le my.cnf ...)
le moteur de stockage est plus lent que d'autres et gourmand en ressources mémoires et en espace disque
Note : chaque table est représentée par un fichier .frm.
Changement du moteur de stockage
On gardera à l'esprit que le choix du moteur n'est jamais définitif. Il peut être changé dynamiquement avec la commande ALTER TABLE comme ceci :
ALTER TABLE maTable1 ENGINE=INNODB;
ALTER TABLE maTable2 ENGINE=MYISAM;
Ce système permet notamment d'utiliser plusieurs types de stockage pour différentes tables d'une même base de données. Cela permettra dans certains cas d'obtenir les meilleurs
performances et avantages.
Conclusion
Pour conclure, on optera pour InnoDB principalement lorsque l'on utilisera un système d'information qui n'admet pas les erreurs ou qui doit utiliser des clés étrangères ou des intégrités référentielles.
MyISAM restera quant à lui le meilleur choix dans le cas où l'on fait principalement des requêtes de lecture ou d'insertion.