Chave estrangeira compromete o desempenho do banco?
17/01/2017
0
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!
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
Curtir tópico
+ 0
Responder
Posts
17/01/2017
Gutierry Pereira
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,
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,
Responder
17/01/2017
Jones Granatyr
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
Responder
Clique aqui para fazer login e interagir na Comunidade :)