Chave estrangeira compromete o desempenho do banco?

MySQL

Banco de Dados

17/01/2017

Amigo me tirem uma duvida,
li em um post que achei no google que quando possível sempre evitar o uso de chaves estrangeria pois pode comprometer e impactar a base de dados conforme grande volume de dados, até que ponto essa afirmação é verdadeira?

Abraços!
Henrique

Henrique

Curtidas 0

Respostas

Gutierry Pereira

Gutierry Pereira

17/01/2017

Bom dia,
essa informação não deixa de ser verdadeira. Pensa pelo seguinte a chave estrangeira serve para garantir integridade no banco de dados, então ao se efetuar um insert/edit e etc, o banco tem que analisar se existe um registro com aquele ID na outra tabela. Então por milesimos de segundo o banco faz um processamento. Se essa sua coluna estiver configurada com algum tipo de cascate isso pode prejudicar ainda mais o desempenho do banco de dados.
Bom mas em termos isso é uma caracteriscas do banco de dados SQL. Por isso banco de dados NoSQL são mais rapidos, pelo fato de não fazerem uso de garantia da integridade(isso e outros motivos como o não uso do ACID).
O uso ou não FK pode fica a seu criterio, da uma estudada e tire suas conclusões.
A alguns anos já não utilizo FK em minhas aplicações quando não tenho a obrigação de garantir integridade entre os registros. Não só em questão do desempenho, mas por que em geral acredito que outros problemas no desenvolvimento ocorrem devido a isso.



Espero ter ajudado,
GOSTEI 0
Jones Granatyr

Jones Granatyr

17/01/2017

Opa! Complementando a resposta do Gutierry: em aplicações de mineração de dados ou Business Intelligence as chaves estrangeiras podem não ser utilizadas, pois neste tipo de sistema os dados já estão integrados e normalmente não são alterados. Como muitos dados são analisados, as chaves estrangeiras poderiam atrasar um pouco o processo
GOSTEI 0
POSTAR