mysql存储过程的利弊_【mysql存储过程】应⽤存储过程的优
点与缺点
总结下使⽤存储过程的优缺点
⼀、存储过程优点
存储过程是⼀组预先创建并⽤指定的名称存储在数据库服务器上的 SQL 语句,将使⽤⽐较频繁或者⽐较复杂的操作,预先⽤ SQL 语句写好并存储起来,以后当需要数据库提供相同的服务时,只需再次执⾏该存储过程。
1.具有更好的性能
存储过程是预编译的,只在创建时进⾏编译,以后每次执⾏存储过程都不需再重新编译,⽽⼀般 SQL 语句每执⾏⼀次就编译⼀次,因此使⽤存储过程可以提⾼数据库执⾏速度。
2.功能实现更加灵活
存储过程中可以应⽤条件判断和游标等语句,有很强的灵活性,可以直接调⽤数据库的⼀些内置函数,完成复杂的判断和较复杂的运算。
批量更新sql语句3.减少⽹络传输
复杂的业务逻辑需要多条 SQL 语句,当客户机和服务器之间的操作很多时,将产⽣⼤量的⽹络传输。如果将这些操作放在⼀个存储过程中,那么客户机和服务器之间的⽹络传输就会减少,降低了⽹络负载。
4.具有更好的安全性
(1)数据库管理⼈员可以更好的进⾏权限控制,存储过程可以屏蔽对底层数据库对象的直接访问,使⽤ EXECUTE 权限调⽤存储过程,⽆需拥有访问底层数据库对象的显式权限。
(2)在通过⽹络调⽤过程时,只有对执⾏过程的调⽤是可见的。⽆法看到表和数据库对象名称,不能嵌⼊SQL 语句,有助于避免 SQL 注⼊攻击。
⼆、存储过程的弊端
1.架构不清晰,不够⾯向对象
存储过程不太适合⾯向对象的设计,⽆法采⽤⾯向对象的⽅式将业务逻辑进⾏封装,业务逻辑在存储层实现,增加了业务和存储的耦合,代码的可读性也会降低,
2.开发和维护要求⽐较⾼
存储过程的编写直接依赖于开发⼈员,如果业务逻辑改动较多,需要频繁直接操作数据库,⼤量业务降维到数据库,很多异常不能在代码中捕获,出现问题较难排查,需要数据库管理⼈员的帮助。
3.可移植性差
过多的使⽤存储过程会降低系统的移植性。在对存储进⾏相关扩展时,可能会增加⼀些额外的⼯作。
三、总结
存储过程与SQL语句如何抉择?
架构设计没有绝对,只有在当前的场景下最合适的。
普通的项⽬开发中,不建议⼤量使⽤存储过程,对⽐SQL语句,存储过程适⽤于业务逻辑复杂,⽐较耗时,同时请求量较少的操作,例如后台⼤批量查询、定期更新等。
(1)当⼀个事务涉及到多个SQL语句时或者涉及到对多个表的操作时可以考虑应⽤存储过程
(2)在⼀个事务的完成需要很复杂的商业逻辑时可以考虑应⽤存储过程
(3)⽐较复杂的统计和汇总可以考虑应⽤后台存储过程

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。