在数据库中,触发器可以在INSERT、UPDATE或DELETE的时候,执行一些特定的操作,以此实现一些业务逻辑,可以大大简化应用程序设计。这一点使用过触发器的都会很有感触,这里主要提一下使用触发器需要注意的几个弊端。
MySQL触发器能基于行触发,MySQL触发器始终时基于表中的一条记录触发,而不是一组SQL语句。因此,如果需要变动整个数据集而数据集数据量又较大时,触发器效果会非常低。
每一个表的一个事件只能定义一个触发器。
由于MySQL触发器基于行触发的特性,因此对于批量操作并不适合使用触发器
使用触发器实现的业务逻辑在出现问题时很难进行定位,特别是设计到多个触发器的情况
协同开发时,写业务层代码如果不清楚数据库触发器的细节,容易搞不清到底触发了那些触发器
大量使用触发器会导致代码结构容易被打乱,阅读源码困难
%%%
如果有个触发器,对于每个数据插入,要更新另外一个表。
一旦你插入的数据有百万、千万甚至更多,那么就要调用百万、千万次的触发器。你幻想以下就知道开销了。
网友评论