存储过程的优缺点

优点

1.运行速度快:一旦执行,在内存中就会保留一份这个存储过程,下次再执行同样的存储过程时,从内存中直接调用,所以执行速度会比普通sql快。

2.减少网络传输直接就在数据库服务器上跑,不需要传输数据到其它服务器,所以会减少一定的网络传输。但是如果在存储过程中没有多次数据交互,那么实际上网络传输量和直接sql是一样的。而且我们的应用服务器通常与数据库是在同一内网,大数据的访问的瓶颈会是硬盘的速度,而不是网速

3.可维护性有时候比程序更容易维护,这是因为可以实时更新DB端的存储过程。  有些bug,直接改存储过程里的业务逻辑,就搞定了。 

增强安全性:提高代码安全,防止 SQL注入。这一点sql语句也可以做到。

4.可扩展性应用程序和数据库操作分开,独立进行,而不是相互在一起。方便以后的扩展和DBA维护优化。

缺点

1.SQL本身是一种结构化查询语言,本质上还是过程化的,面对复杂的业务逻辑,过程化的处理会很吃力。这一点算致命伤。

2.不便于调试。基本上没有较好的调试器,很多时候是用print来调试,但用这种方法调试长达数百行的存储过程简直是噩梦。

3.没办法应用缓存。虽然有全局临时表之类的方法可以做缓存,但同样加重了数据库的负担。如果缓存并发严重,经常要加锁,那效率实在堪忧。

4.无法适应数据库的切割(水平或垂直切割)。数据库切割之后,存储过程并不清楚数据存储在哪个数据库中。

posted @ 2021-09-14 21:40  四叶笔记  阅读(653)  评论(0编辑  收藏  举报