Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Guilherme Oderdenge

O que é mais interessante: trigger ou foreign key (ON CASCADE)?

Recommended Posts

Olá MySQL experts!

Gostaria de saber, é mais performático uma trigger ou uma foreign key para executar um "after delete"?

 

Pergunto isso porque tenho uma tabela que quando um registro é deletado, em outra tabela outro registro também é deletado. Consegui fazer tal efeito tanto com trigger, quanto com foreign key, mas não sei o que é mais performático — e por incrível que pareça, não encontrei muita coisa na internet.

 

Na vossa opinião, o que mais vale a pena?

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tenho certeza mas acredito dá igual em termos de perfomance, mas creio ficar melhor escrito por DELETE CASCADE.

 

Trigger se justificaria se houvesse alguma lógica envolvida, tipo só deletar sobre determinada regra de negócio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente, faz sentido. No meu caso, eu deixei como foreign key justamente por não utilizar mais nenhuma regra de negócio.

 

Se alguém tiver mais alguma opinião ou teoria sobre o assunto, compartilhe — ainda dá tempo pra eu alterar aqui, hehe.

 

Valeu Motta!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria o caso de fazer um teste :

 

Duas tabelas do tipo mãe e filha

 

Insere 1.000.000 de registros na filha ligadas à mãe

 

Conta-se tempo com trigger e o tempo com cascade.

 

Eu aposto que serão muito próximos ou iguais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.