2009-11-12 3 views
2

Nous avons des sites Web avec des centaines de visiteurs chaque jour et des dizaines de milliers de requêtes par jour. Ainsi, certaines tables de la base de données sont mises à jour très rarement, certaines tables sont mises à jour plusieurs fois par minute et certaines tables sont mises à jour ~ 10 fois par seconde.
MyISAM utilise le verrouillage au niveau des tables pour les mises à jour et InnoDb utilise le verrouillage au niveau des lignes.
Donc, si je comprends, pour les tables avec de fréquentes mises à jour simultanées (plusieurs mises à jour par seconde), il est préférable de les faire InnoDB, et pour d'autres tables (si l'on n'a pas besoin de transactions et les clés étrangères bien sûr), il est ok pour être avec le moteur MyISAM.
Ai-je raison dans mes pensées? MyISAM est plus rapide pour les lectures et les écritures, mais pas en même tempsAi-je raison de dire que InnoDb est meilleur pour les mises à jour et insertions simultanées fréquentes que MyISAM?

Répondre

6

En d'autres termes, si vous avez besoin de beaucoup d'écritures, ce sera plus rapide, mais si vous voulez que les gens lisent en même temps, les lecteurs et les rédacteurs se bloqueront et vous aurez peut-être des problèmes de concurrence. Vous devriez utiliser InnoDB dans de tels scénarios, et la plupart des gourous mysql recommandent d'utiliser InnoDB par défaut de toute façon car il est considéré comme plus fiable que MyISAM, bien qu'il soit plus lent dans certains cas d'utilisation.

+0

Oui, j'ai oublié de mentionner que je veux dire mises à jour CONCURRENT bien sûr. Merci pour votre réponse. – nightcoder

0

Oui, je crois. Je suis un nouveau venu chez MySQL, mais quand je l'ai installé, il a expliqué que innoDB est optimisé pour les systèmes opérationnels transactionnels, et MyISAM est idéal pour les systèmes de reporting/DW.

Questions connexes