sql >> Databáze >  >> RDS >> Mysql

Proč používat omezení cizího klíče v MySQL?

Cizí klíče prosazovat referenční integritu . Tato omezení zaručují, že řádek v tabulce order_details s polem order_id odkazování na orders tabulka nikdy nebude mít order_id hodnota, která v orders neexistuje stůl.

Cizí klíče nejsou vyžadovány pro funkční relační databázi (ve skutečnosti výchozí úložiště MySQL engine nepodporuje FK), ale jsou rozhodně nezbytné, aby se zabránilo narušeným vztahům a osiřelým řádkům (tj. referenční integrita). Pro C je vyžadována schopnost vynutit referenční integritu na úrovni databáze v ACID stát.

Pokud jde o vaše obavy týkající se výkonu, obecně existují náklady na výkon, ale pravděpodobně budou zanedbatelné. Navrhuji zavést všechna omezení cizího klíče a experimentovat bez nich pouze v případě, že máte skutečné problémy s výkonem, které nemůžete vyřešit jinak.



  1. Název tabulky MySQL jako parametr

  2. Jak funguje REGEXP_INSTR() v MariaDB

  3. Spojení tabulek z jiné databáze

  4. aws - ec2 - mysql - instance stop,reboot - hesla ostatních uživatelů změněna