Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que usar restrições de chave estrangeira no MySQL?


Chaves estrangeiras impor integridade referencial . Essas restrições garantem que uma linha em uma tabela order_details com um campo order_id referenciando um orders tabela nunca terá um order_id valor que não existe nos orders tabela.

As chaves estrangeiras não precisam ter um banco de dados relacional funcional (na verdade, armazenamento padrão do MySQL engine não suporta FKs), mas eles são definitivamente essenciais para evitar relacionamentos quebrados e linhas órfãs (ou seja, integridade referencial). A capacidade de impor integridade referencial no nível do banco de dados é necessária para o C em ACID ficar de pé.

Quanto às suas preocupações em relação ao desempenho, em geral há um custo de desempenho, mas provavelmente será insignificante. Sugiro colocar todas as suas restrições de chave estrangeira e apenas experimentar sem elas se você tiver problemas reais de desempenho que não possa resolver de outra forma.