触发器和事务都是对数据库的多个操作,我们总是不建议使用数据库的触发器,触发器对数据库的压力更大么?

新手上路,请多包涵

看了很多观点,大家对数据库的触发器基本上是一致的不推荐使用。

对于触发器的弊端大体梳理了一下:

1. 触发器不可见,不容易追踪,难以维护,隐式调用不易于排查依赖,有悖编码规范。

2. 触发器移植性不好

3. 触发器增加数据库压力,高并发应用不要使用。

一跟二都很容易理解,但是第三点,我有一些疑虑。既然都是对数据库的一组操作,为什么说触发器会增加数据库的压力?影响效率?

触发器和事务都是对数据库的一组操作,事务还有程序的远程连接调用的io消耗,触发器是在数据库层面的执行和调用,感觉应该比事务执行的效率更高,为什么更推荐使用事务呢?

阅读 2.3k
1 个回答

数据库是用来存数据,取数据的,不是用来帮你做计算的

触发器在数据库上面运行会消耗数据库的计算资源,如果这部分资源用来提供查询服务,是不是又可以多服务几个客户端,QPS是不是快一点?

高并发的项目中,对数据库都是能不访问则不访问,触发器能做的,应用程序也能做,而且做的更好,还能横向扩展

事务主要时为了解决数据一致性问题,这方面跟触发器没有可比性

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题