{{tag>app mysql}} ====== Choix d'un moteur de stockage ====== Le wiki présente rapidement quelques caractéristiques des moteurs MyISAM et innoDB disponible dans le SGBD MySQL. Le choix du moteur d'un stockage dépend des spécificités de l'application. ===== MyISAM ===== * Très rapide notamment pour les requêtes INSERT et SELECT. * Maintenance/administration facile: supporte la copie directe des fichiers. * Gère les conflits et accès simultanés (lock). * Ne gère pas les transactions. * Ne gère pas les clés étrangères. L'utilisation de **MyISAM** est judicieuse pour un système d'information tolérant des incohérences. Sa rapidité sur les opérations de lecture ou d'insertion est un atout. ===== InnoDB ===== * Gestion des transactions (concept ACID: Atomiques, Cohérentes, Isolées, Durables). * Gestion des clés étrangères. * Garantie la cohérence de la base même en cas de crash. * Maintenance/administration plus complexe * Moteurs plus lent, plus consommateur de ressources. **InnoDB** s'utilisera principalement pour un système d'information sans tolérance d'erreurs ou utilisant intensivement les clés étrangères ou des intégrités référentielles. ===== Modifier le moteur de stockage ===== Quelqu'il soit, le choix d'un moteur de stockage n'est pas définitif, il peut être modifié à tout moment via la commande ''**alter table**'': mysql> ALTER TABLE maTable1 ENGINE=INNODB; mysql> ALTER TABLE maTable2 ENGINE=MYISAM; ===== Références ===== * http://www.tux-planet.fr/mysql-les-principales-differences-entre-myisam-et-innodb/ * http://fr.wikipedia.org/wiki/InnoDB * http://fr.wikipedia.org/wiki/Transaction_%28base_de_donn%C3%A9es%29