J'ai 2 tables dans lesquelles je veux plus de robustesse et, heureusement, je n'ai pas besoin de données et d'examens rapides et fréquents. Toutes les autres tables seraient inévitablement MyISAM. Puis-je utiliser les deux en toute sécurité (j'en ai lu quelques découragements) sans craindre que les bogues ou les données ne soient affectés par les différences entre les moteurs?Utilisation d'une combinaison de tables InnoDB et MyIsam
13
A
Répondre
11
Oui, vous pouvez.
Notez que seules les tables InnoDB
prennent en charge les transactions et les relations FOREIGN KEY
.
26
Vous pouvez, mais cela introduit un certain nombre d'inconvénients:
- Votre réglage du serveur va maintenant être nécessairement un compromis - vous ne pouvez pas utiliser toute la mémoire soit pour MyISAM OU InnoDB (NB: Cela ne veut pas appliquer si elles sont sur des serveurs différents)
- réplication échoue dans un certain nombre de garde-cas, parce que si vous avez une transaction échouée qui contenait des modifications à certaines tables MyISAM, il ne peut ni engager correctement, il ne rouler en arrière
- vous pouvez toujours » t sauvegardez votre serveur en utilisant MVCC, car vous n'obtiendrez toujours pas un snapshot cohérent de MyISAM t
Donc, fondamentalement, je vous encourage à passer entièrement à InnoDB. Ensuite, vous pouvez pratiquement oublier MyISAM et ne pas y consacrer de ressources, et bénéficier pleinement de l'utilisation d'InnoDB. Toute personne qui pense que MyISAM est plus rapide ne peut pas régler InnoDB correctement, ou a des données aussi petites qui s'en soucie. MyISAM effectue des analyses de table plus rapides, mais si vous les faites sur de grandes tables, vous avez de plus gros problèmes.
Questions connexes
- 1. Tables à langer de MyISAM à InnoDB font lente
- 2. Hibernate: Créer des tables MySQL InnoDB au lieu de MyISAM
- 3. Conversion de myisam en innodb
- 4. phpmyadmin montrant MyISAM au lieu de InnoDB
- 5. Tables MyISAM se corrompent
- 6. Utilisation de Entity Framework avec les tables MyIsam
- 7. Table de conversion de MyISAM à INNODB
- 8. InnoDB JPA, continuez de forcer MyISAM
- 9. Puis-je utiliser les tables InnoDB et MyISAM dans UNE base de données?
- 10. Écrire sur InnoDB lire à partir de MyIsam
- 11. quelle est la différence entre InnoDB et MyISAM
- 12. Les tables de type MyISAM fonctionneront-elles mieux que InnoDB pour un grand nombre de colonnes?
- 13. Je ne peux pas convertir myISAM à innodb
- 14. Test des unités Rails avec tables MyISAM
- 15. Est-ce que cette affaire nécessite InnoDB ou MyISAM?
- 16. Taille de ligne InnoDB grande par rapport à MyIsam
- 17. Combinaison de foreach et utilisation de
- 18. Comptage de tables différentes dans les tables MySQL MyISAM
- 19. Conservation des données et des données d'index en mémoire - InnoDB vs. MyISAM
- 20. Pour les systèmes de statistiques quoi de mieux dans MySQL: InnoDB, Archive ou MyISAM?
- 21. Configuration de MySQL pour InnoDB
- 22. comment fonctionnent les index dans les tables mysql (MyISAM)?
- 23. Heure de création des tables Innodb
- 24. quelle est la version équivalente de MyISAM pour afficher l'état de InnoDB dans MySQL
- 25. Jeu minimum de fichiers nécessaires pour récupérer une table MySQL (MyISAM et InnoDB)
- 26. Ai-je raison de dire que InnoDb est meilleur pour les mises à jour et insertions simultanées fréquentes que MyISAM?
- 27. Quand est-il temps pour une table de passer de MyISAM à InnoDb?
- 28. InnoDB et joindre des tables - problème avec ce
- 29. MySql, InnoDB & Null Values
- 30. Utiliser auto_increments pour rejoindre des tables MyISAM dans MySQL
Belle réponse MarkR, je me demandais dans quelles "edge-cases" la réplication d'une base de données mixte InnoDB/MyIsam pourrait échouer? Utiliser uniquement les transactions affectant les tables InnoDB et MyIsam? Pensez-vous que cela soit sûr dans un autre cas? Merci –
Si une transaction arrive sur le maître qui implique MyISAM et les tables innodb, commet avec succès, est binlogged, alors sur l'esclave, la partie InnoDB échoue avec un blocage, la transaction sera rejugée. Cependant, la partie MyISAM de la transaction ne peut pas être annulée, donc l'esclave devra la répéter (et espérer que rien de mal ne se produira) - mais quelque chose de mauvais peut arriver et l'esclave entier se casse (réplication arrêtée jusqu'à l'intervention manuelle) . Il y a beaucoup d'autres cas, c'est un exemple que je viens d'inventer. – MarkR