Pourquoi utiliser les contraintes de Clé Étrangère dans MySQL?
Je me demandais,
Ce sera ma motivation pour l'utilisation de la contrainte comme clé étrangère dans MySQL, comme je suis sûr que je ne peux exclure les types qui sont ajoutés?
Améliore-t-elle la performance?
- question similaire a été posée, voir stackoverflow.com/questions/1876013 il y a beaucoup de discussions 😀
Vous devez vous connecter pour publier un commentaire.
Les clés étrangères appliquer l'intégrité référentielle. Ces contraintes de garantir qu'une ligne dans une table
order_details
avec un champorder_id
le référencement d'unorders
de la table n'aura jamais unorder_id
valeur qui n'existe pas dans leorders
table.Les clés étrangères ne sont pas tenus d'avoir un travail relationnel de la base de données (en fait MySQL par défaut de stockage moteur ne prend pas en charge FKs), mais ils sont certainement indispensable pour éviter les liens brisés et de l'orphelin lignes (ie. l'intégrité référentielle). La capacité à appliquer l'intégrité référentielle de la base de données est nécessaire pour que le C dans L'ACIDE de se.
Que pour vos préoccupations en matière de performance, en général il y a un coût, mais sera probablement négligeable. Je suggère de mettre dans tous vos contraintes de clés étrangères, et seulement l'expérimentation sans eux, si vous avez de vrais problèmes de performances que vous ne pouvez pas résoudre autrement.