mysql存储过程自定义结构体_MySQL 存储过程 自定义函数

一. 定义

存储过程 Procedure 是一组为了完成特定功能的 SQL 语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。

以上是官方的定义。简单来说,如果把sql当成是代码,其实存储过程就相当于函数。把一组具备特定功能的sql语句封装成起来而已。所以他的本质是为了更好的执行对数据库的操作。那么好在哪里呢?

二. 存储过程的优势

1. 性能。存储过程在创建时就已经在数据库服务器中编译好并存储起来,调用时只需提供过程名和参数,就可以直接使用。而sql语句,没执行一句就要编译一次,这在sql语句发送并不频繁的情况下还好,但是如果短时间大量发送sql语句的情况下,不仅会降低网络性能也会增加数据库负担。

2. 可完成更复杂的数据库控制。由于存储过程中可以包含逻辑控制语句和数据操纵语句,类似遍历、if这种逻辑可以直接卸载过程中。

3.我在程序中写了一段代码,发送一千条sql插入语句到本地数据库,大概花了6672ms,而在存储过程中只花了4689ms。以下分别是代码和存储过程sql:

@Autowired

private JdbcTemplate jdbcTemplate;

public static final String INSERT_SQL="insert into user (id, name, age) values(?,?,?)";

public void insert(){

long begin = System.currentTimeMillis();

fo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值