Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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!
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.
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.