您的位置:首页 > 数据库 > MySQL

mysql的触发器

2013-05-29 00:00 295 查看
触发器一般是用于在一个表的数据更新后,触发相关表实现联动更改,这样做有一个好处就是在进行数据更新时,只要更新一处数据,其他业务逻辑需要修改的地方就能全部交由数据库定义的触发器在数据库层面修改其他表的数据。

这些业务,比如说用户登录动作,在用户登录后,我们只要更新最后登录时间,同时通过触发器,来把用户的信息放到在线用户表里,另外也可以定义触发器在消息表里生成一些数据来推送给用户等等。

不过以我以往的经验,我建议最好不要使用触发器,可以使用队列来实现类似的功能,主要原因:

1.建立了触发器后,各表间就形成了一种耦合关系,当数据量大了以后,想做数据拆分、数据库变更、数据库存储优化等等,都非常困难了,有的甚至动不了,比如我以前经历过的一个系统,开始使用的是sqlserver数据库,上面自定义了一些触发器,不过后来数据量大了,想使用mysql来分离一些数据,但系统又要一直保持在线可用状态,想整改优化系统的存储,非常痛苦!

2.在数据库的使用原则上,我建议,最好只使用数据的存储跟查询这些最基本的功能,尽量减少数据库的逻辑运算,这样才能最大程度的发挥数据库性能,也更有利于系统的性能扩展,减低系统耦合性等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: