sql >> Database >  >> RDS >> Mysql

Externe sleutels wanneer cascades niet nodig zijn

De antwoorden op deze vraag kan eigenlijk ook van toepassing zijn op uw vraag.

Als u kolommen in tabellen hebt die verwijzen naar rijen in andere tabellen, moet u altijd externe sleutels gebruiken, want zelfs als u denkt dat u de functies van die controles niet nodig hebt, zal het toch helpen de gegevensintegriteit te garanderen voor het geval u een check in je eigen code vergeten.

De prestatie-impact van externe sleutelcontroles is in de meeste gevallen verwaarloosbaar (zie bovenstaande link), aangezien relationele databases zeer geoptimaliseerde algoritmen gebruiken om ze uit te voeren (ze zijn tenslotte een belangrijk kenmerk omdat ze de relaties tussen entiteiten definiëren).

Een ander groot voordeel van FK's is dat ze ook anderen helpen de lay-out van uw database te begrijpen.

Bewerken: Aangezien de hierboven gelinkte vraag verwijst naar SQL-Server, is hier een met antwoorden van een zeer vergelijkbare soort voor MySQL:Vermindert de introductie van externe sleutels in MySQL de prestaties



  1. Hibernate mysql čć

  2. MySQL-gegevensbestand laden - versnelling?

  3. OPMERKINGEN voor volgorde na het uitvoeren van migratie in rails op postgresql-toepassing

  4. Geneste transactie terugdraaien tussen twee savepoints?