mysql游标的使用

1.mysql游标特性及性能

  • 游标只能向一方向前进,并且不可以跳过任何一行数据

  • MySQL在服务器提供的只读的,单向的游标,而且只能存储过程或者更底层的客户端API中使用。因为MySQL游标中指向的对象都是存储在临时表中而不是实际查询到的数据,所以游标总是只读的。

  • 游标会让mysql执行一些额外的I/O操作,而这些操作的效率可能非常低。

  • 因为临时内存表不支持blob和text类型,如果游标返回的结果包含这样的列,mysql就的必须创建临时磁盘表来存放,会导致性能可能很糟糕。

2.游标使用场景

  • 存储过程
  • 函数
  • 触发器
  • 事件

3.游标常用操作

  • 常与loop循环结合使用
## 定义游标
declare cursor_name cursor for select_statement

## 打开游标
open cursor_name

## 读取游标中的数据
fetch cursor_name info var_name [,var_name] ...

## 关闭游标
close cursor_name

## 释放游标
deallocate cursor_name

注意:如果在关闭游标的时候,你只是扫描一个大结果集的一小部分,那么在存储过程可能不仅没有减少开销,相反带来了大量的额外开销。这时,你需要考虑使用limit来限制返回的结果集。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值