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.