深入理解MYSQL游标
万物皆有存在的理由,很多人都认为有效有害无益。由于理解的升入,也许会改变大家的看法。
游标的三个属性:
1,Asensitive,数据库也可以选择不复制结果集。
2,Read only,不能更新。
3,Nonscrollable,游标只能向一个方向行进,并且不可以跳过任何一行数据。
使用游标的步骤:
1,定义游标变量
DECLARE cur_name CURSOR FOR select_statement;
2,打开游标
OPEN cur_name;
3,从游标中取数据
FETCH cur_name INTO var1_name,[var2_name]...
4,关闭游标
CLOSE cur_name;
游标的开销来自于处理每一行数据。游标的操作的快慢取决于数据集合的大小。
SQL语句的扫描成本为O(N),游标性能不会有巨大提升,游标会有额外的开销;如果游标扫描成本为O(N**2),或许可以带来性能的提升。