/ / J'ai maintenant des tables de données dans myisam (mysql). Devrais-je utiliser des tables de relations d'innoDB? [fermé] - mysql, innodb, myisam

J'ai maintenant des tables de données dans myisam (mysql). Dois-je utiliser les tables de relation de innoDB? [fermé] - mysql, innodb, myisam

Est-ce une table avec des colonnes comme tid(int) zid(int) direction(tinyint) type(tinyint) avec des opérations de lecture et d’écriture assez lourdes, ainsi que la connexion à d’autres tables de myisam, il est préférable d’être optimisé pour myisam ou innodb?

On m'a dit qu'innodb avait pire écrireperformance que celle de myisam. Est-ce vrai? et innodb utilise également un verrou de table comme myisam lorsque les données ne sont pas extraites avec la clé primaire. Existe-t-il des techniques permettant de joindre des tables entre des tables avec myisam et innodb?

Réponses:

1 pour la réponse № 1

Par défaut, vous devriez toujours utiliser InnoDB. C'est plus rapide; il prend en charge les transactions, les clés étrangères et le verrouillage au niveau de la ligne; il est plus tolérant en cas de collision - de manière générale, il est considérablement meilleur que MyISAM.

Il existe quelques situations où les tables MyISAM peuvent être nécessaires. Deux communes sont:

  • Vous utilisez une ancienne version de MySQL qui ne prend pas en charge les index de texte intégral ou géospatial et vous devez activer ces fonctionnalités.

    (Notez que si vous sont En utilisant des index en texte intégral, il est souvent préférable d’utiliser un moteur de recherche externe tel que Sphinx - la recherche en texte intégral de MySQL n’est pas particulièrement efficace.)

  • Vous avez des tables avec des modèles d'accès aux données inhabituels (en particulier des tables extrêmement grandes en écriture seule, telles que des journaux) qui peuvent parfois fonctionner mieux sous MyISAM.

Cependant, si vous n'êtes pas certain que ces conditions s'appliquent, vous devez utiliser InnoDB. C'est presque toujours le bon choix.