sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué usar restricciones de clave externa en MySQL?

Claves externas hacer cumplir integridad referencial . Estas restricciones garantizan que una fila en una tabla order_details con un campo order_id haciendo referencia a un orders la tabla nunca tendrá un order_id valor que no existe en los orders mesa.

No se requieren claves foráneas para tener una base de datos relacional en funcionamiento (de hecho, almacenamiento predeterminado de MySQL motor no admite FK), pero definitivamente son esenciales para evitar relaciones rotas y filas huérfanas (es decir, integridad referencial). Se requiere la capacidad de hacer cumplir la integridad referencial en el nivel de la base de datos para el C en ACID ponerse de pie.

En cuanto a sus preocupaciones sobre el rendimiento, en general hay un costo de rendimiento, pero probablemente sea insignificante. Sugiero poner todas sus restricciones de clave externa y solo experimentar sin ellas si tiene problemas reales de rendimiento que no puede resolver de otra manera.