在我看来,任何数据层一致性/完整性更新几乎总是应该由触发器处理。
过去我被告知他们可以降低性能,但我不确定在什么情况下。一方面,当触发器锁定进一步的动作时,我可以看到增加的锁定争用,但似乎仍然可以通过减少多次往返查询的需要来改善总体性能。一个反例是日志记录,可以在应用程序关键路径之外异步处理,以提高性能。似乎人们不希望在数据层中实现太多特定于应用程序的算法复杂性。
我已阅读docs,FAQs,Forum和other sites,并见证了大量用例,但未见过讨论最佳做法或反模式。
是否有一般的经验法则或触发器不是一个好主意的特定情况?