Mysql
 sql >> Database >  >> RDS >> Mysql

Perché utilizzare i vincoli di chiave esterna in MySQL?

Chiavi straniere applicare l'integrità referenziale . Questi vincoli garantiscono che una riga in una tabella order_details con un campo order_id facendo riferimento a un orders la tabella non avrà mai un order_id valore che non esiste negli orders tavolo.

Non è necessario che le chiavi esterne dispongano di un database relazionale funzionante (infatti la memoria predefinita di MySQL engine non supporta gli FK), ma sono sicuramente essenziali per evitare relazioni interrotte e righe orfane (es. integrità referenziale). Per il C è richiesta la capacità di imporre l'integrità referenziale a livello di database in ACID stare in piedi.

Per quanto riguarda le tue preoccupazioni in merito alle prestazioni, in generale c'è un costo per le prestazioni, ma probabilmente sarà trascurabile. Ti suggerisco di inserire tutti i tuoi vincoli di chiave esterna e di sperimentare senza di essi solo se hai problemi di prestazioni reali che non potresti risolvere altrimenti.