Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum Fremdschlüsselbeschränkungen in MySQL verwenden?

Fremdschlüssel erzwingen referenzielle Integrität . Diese Einschränkungen garantieren, dass eine Zeile in einer Tabelle order_details mit einem Feld order_id Verweis auf eine orders Tabelle wird niemals eine order_id haben Wert, der in den orders nicht existiert Tisch.

Fremdschlüssel sind nicht erforderlich, um eine funktionierende relationale Datenbank zu haben (tatsächlich MySQLs Standardspeicher ). -Engine unterstützt keine FKs), aber sie sind definitiv unerlässlich, um unterbrochene Beziehungen und verwaiste Zeilen (z. B. referenzielle Integrität) zu vermeiden. Für C ist die Fähigkeit erforderlich, die referenzielle Integrität auf Datenbankebene zu erzwingen in ACID zu stehen.

Was Ihre Bedenken hinsichtlich der Leistung betrifft, so fallen im Allgemeinen Leistungskosten an, die jedoch wahrscheinlich vernachlässigbar sind. Ich schlage vor, alle Ihre Fremdschlüsselbeschränkungen einzubauen und nur dann ohne sie zu experimentieren, wenn Sie echte Leistungsprobleme haben, die Sie nicht anders lösen können.