Quelles sont les différences entre les types MyISAM et Inno DB dans MySql?
Réponses
Trop de publicités?La principale différence est que InnoDB supporte les transactions tout en MyISAM ne le fait pas.
Il existe de nombreuses autres différences, cependant, la commune est je suis au courant sont:
- MyISAM a généralement été considéré comme plus rapide, à la recherche, mais de récentes InnoDB améliorations sont en retrait de cette différence et l'amélioration de la haute simultanéité de la charge de travail de la performance
- InnoDB supportent les transactions, tandis que MyISAM ne pas
- InnoDB gère les index, un peu différemment, le stockage de la clé primaire dans le cadre de chaque indice (indices de faire prendre plus de place sur le disque, mais aussi de faire un index de couverture plus probable)
- MyISAM n'niveau de la table de verrouillage tout en InnoDB peut faire le verrouillage de niveau ligne
- Différent de la mémoire tampon//index paramètres sont utilisés dans les fichiers de configuration de MySQL
- InnoDB est généralement dit avoir une meilleure récupération de l'incident
- Comme mentionné dans une autre réponse, les données sont stocker sur disque différemment. Je crois que InnoDB est configurable dans ce domaine et peuvent avoir un fichier par table, etc. si nécessaire
Je suis sûr d'une recherche google ou sur le site de MySQL apportera de nombreuses autres différences plus en détail.
InnoDB et MyISAM
Caractéristiques et comparaison des Performances:
- InnoDB est plus récente tout en MyISAM est plus.
- InnoDB est plus complexe tout en MyISAM est plus simple.
- InnoDB est plus stricte intégrité des données tout en MyISAM est lâche.
- InnoDB met en œuvre au niveau de la ligne de verrouillage pour l'insertion et la mise à jour alors que MyISAM met en œuvre au niveau de la table de verrouillage.
- InnoDB a des opérations tout en MyISAM ne le fait pas.
- InnoDB a les clés étrangères et de la relation de contraintes, tout en MyISAM ne le fait pas.
- InnoDB a une meilleure récupération de l'incident, tandis que MyISAM est pas bons à la récupération de l'intégrité des données du système se bloque.
- MyISAM a la recherche plein texte, index tout en InnoDB n'a pas.
À la lumière de ces différences, InnoDB et MyISAM ont leurs propres avantages et inconvénients les uns contre les autres. Ils sont plus adaptés dans certains scénarios que les autres.
Avantages de InnoDB
- InnoDB doit être utilisé lorsque l'intégrité des données, vient à une priorité, parce qu'elle intrinsèquement prend soin d'eux à l'aide de la relation des contraintes et des transactions.
- Plus rapide en écriture intensive (insertions, mises à jour) les tableaux car il utilise le verrouillage de ligne et seulement le maintenir en place des changements à la même ligne qui est insérée ou mise à jour.
Les inconvénients de InnoDB
- Parce que InnoDB doit prendre soin des différentes relations entre les tables, administrateur de base de données et d'un système de créateurs de prendre plus de temps dans la conception des modèles de données qui sont plus complexes que ceux de MyISAM.
- Consomme plus de ressources système telles que la RAM. Comme une question de fait, il est recommandé que le moteur InnoDB être désactivé si il n'y a pas de besoin important pour elle après l'installation de MySQL.
- Pas d'indexation de texte intégral.
Avantages de MyISAM
- Plus simple à concevoir et à créer, donc mieux pour les débutants. Pas de soucis sur les étrangers, les relations entre les tables.
- Plus rapide que InnoDB dans l'ensemble comme un résultat de la structure plus simple et beaucoup moins les coûts des ressources du serveur.
- L'indexation de texte intégral.
- Particulièrement bon pour la lecture intensive (sélectionner) les tableaux.
Les inconvénients de MyISAM
- Pas de l'intégrité des données (par exemple, la relation de contraintes), qui vient alors une responsabilité et des frais indirects de la base de données des administrateurs et des développeurs d'applications.
- Ne prend pas en charge les transactions de ce qui est essentiel dans les applications de données critiques telles que celle de la banque.
- Plus lent que InnoDB pour les tables qui sont souvent insérées ou mises à jour, parce que l'ensemble de la table est verrouillée pour toute opération d'insertion ou de mise à jour.
La comparaison est assez simple. InnoDB est plus approprié pour les données critiques qui nécessitent de nombreuses insertions et mises à jour. MyISAM, d'autre part, de meilleures performances avec les applications qui ne sont pas tout dépend de l'intégrité des données et la plupart du temps il suffit de sélectionner et d'afficher les données.
Référence: Comparaison InnoDB et MyISAM
Vous pouvez aussi la voir ici pour plus de détails: MyISAM Ou InnoDB de MySQL moteur?
Espérons que cette aide.
La différence la plus importante entre MyISAM et InnoDB est que InnoDB supporte les transactions et les clés étrangères. Si vous avez besoin de clés étrangères et les fonctionnalités associées (par exemple automatiquement les suppressions en cascade), vous aurez besoin d'utiliser InnoDB.
InnoDB est plus lent que MyISAM pour la plupart des utilisations, mais peut effectuer plus rapidement dans certaines conditions en raison d'un meilleur mécanisme de verrouillage; MyISAM verrouille l'ensemble de la table de lecture, tandis que les insertions, mises à jour en cours d'exécution. InnoDB peut faire au niveau de la ligne de verrouillage, permettant ainsi de multiples écritures simultanées et de lire sur la table.
Vous pouvez avoir plus d'informations sur MyISAM & InnoDB dans la documentation MySQL:
http://dev.mysql.com/doc/refman/5.1/en/myisam-storage-engine.html