什么是存储过程?
先看一下百度词条给的答案
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。
通俗讲
存储过程是一个预编译的SQL语句,比如一些场景的sql比较复杂,并且需要经常使用或者多次使用的。存储过程的优点是说只需创建一次编译一次,以后在该程序中就可以多次直接调用。如果一个sql是经常需要操作的,并且逻辑不容易改变,使用存储过程比单纯SQL语句执行要快,因为sql每次查询而且都需要编译。而且网络开销也大,存储过程只需要传一个名字,在数据库调用就行了,而且这样程序可移植高
什么时候用存储过程,小项目有没有必要用?
小项目要要不要用 要看这个项目的重要性,以及团队各方面的配置
因为存储过程的可维护性比较差,可读性也比较差
如果对效率没有特别苛刻的要求,可以选择不用
存储过程的优势也是比较明显的
-
效率高
存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度
-
减少繁琐的步骤
当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了
而且存储过程可以重复使用,可减少数据库开发人员的工作量 -
安全性高
安全性高,可设定只有某此用户才具有对指定存储过程的使用权
存储过程的劣势
综上所述 要不要用还是要根据实际情况衡量