Pourquoi le moteur MyISAM de MySQL ne supporte pas les clés étrangères?
j'écris une application web pour mes études qui inclut la recherche en texte intégral et les clés étrangères.
J'ai lu quelque part, MyISAM moteur est adapté pour la recherche plein texte, et InnoDB pour les clés étrangères.
dans cette situation, quel moteur devrais-je utiliser pour obtenir les meilleures performances?
- pourquoi MyISAM ne soutient pas la relation clé étrangère mais InnoDB Oui?
- pourquoi MyISAM supporte la recherche en texte intégral mais pas InnoDB?
2 réponses
veuillez me dire, dans cette situation, quel moteur dois-je utiliser pour améliorer mes performances?
la performance de chaque moteur de stockage dépendra des requêtes que vous effectuerez. Cependant, sachez que différentes tables d'une même base de données peuvent utiliser des moteurs de stockage différents.
pourquoi MyISAM engine ne supporte pas la relation clé étrangère et InnoDB si?
tel que documenté Différences Entre Les Clés Étrangères:
à un stade ultérieur, des contraintes de clé étrangère seront mises en œuvre pour
MyISAM
tables ainsi.par conséquent, les contraintes des clés étrangères n'ont tout simplement pas encore été mises en œuvre dans
MyISAM
.
EDIT: ce commentaire étant supprimé de docs, il apparaît qu'il n'est plus prévu de mettre en œuvre des contraintes de clé étrangère dans MyISAM
moteur.
pourquoi MyISAM engine supporte la recherche en texte intégral et InnoDB pas?
comme indiqué sous Quoi de neuf en MySQL 5.6:
Vous pouvez créer
FULLTEXT
indexInnoDB
tables de, et de les interroger à l'aide de laMATCH() ... AGAINST
syntaxe.par conséquent, la recherche en texte intégral a été implémentée dans
InnoDB
à partir de MySQL 5.6.
je me souviens de l'époque où mysql n'avait que myisam et innodedb était en développement. MyIsam n'a pas de clés étrangères parce que c'est un vieux système qui ne supporte pas les relations dans la base de données. Il n'utilisera jamais de clés étrangères! Pour l'Utiliser vous devez innodb. Si vous n'avez pas besoin de tout, comme les relations en DB, utilisez MyISAM pour obtenir une meilleure performance.