游标的一个常见用途就是保存查询结果,以便以后使用。游标的结果集是由SELECT语句产生,如果处理过程需要重复使用一个记录集,那么创建一次游标而重复使用若干次,比重复查询数据库要快的多。
大部分程序数据设计语言都能使用游标来检索SQL数据库中的数据,在程序中嵌入游标和在程序中嵌入SQL语句相同
因为我们做的数据量大,而且系统上跑的不只我们一个业务。所以,我们都要求尽量避免使用游标,游标使用时会对行加锁,可能会影响其他业务的正常进行。而且,数据量大时其效率也较低效。另外,内存也是其中一个限制。
因为游标其实是相当于把磁盘数据整体放入了内存中,如果游标数据量大则会造成内存不足,内存不足带来的影响大家都知道了。
所以,在数据量小时才使用游标
作者:笨鸟-李晓杰
链接:https://www.zhihu.com/question/19777435/answer/37060426
来源:知乎
MySQL
游标
是一个强大的工具,它允许开发者以逐行的方式处理SELECT语句的结果集。通过合理地
使用
游标
,可以实现复杂的数据操作和精细的数据控制。然而,由于
游标
可能会影响性能和资源消耗,因此在
使用
时应该谨慎,并确保在不需要时及时关闭和释放
游标
。
MySQL服务可能会同时被多个客户端进程(线程)访问,访问的方式以事务方式进行。一个事务可能由多条SQL构成,也就意味着,任何一个事务,都有执行前,执行中,执行后的阶段。读未提交(Read Uncommitted),在读未提交隔离级别下,一个事务可以读取另一个事务尚未提交的数据。读已提交(Read Committed),在读已提交隔离级别下,一个事务只能读取到另一个事务已经提交的数据。可重复读(Repeatable Read),避免了脏读和不可重复读。提供了较高的数据一致性。序列化,事务被完全隔离。
来源:CSDN
原文:https://blog.csdn.net/Mynewclass/article/details/78735550
版权声明:本文为博主原创文章,转载请附上博文链接!
一、MySQL
游标
的概念
1、
游标
介绍
MySQL的
游标
(cursor)是一个重要的概念,通过查找资料与自己的理解,主要得出以下几点关于自己的理解。
有数据缓冲的思想:
游标
的设计是一种数据缓...
游标
允许我们在
数据库
查询的结果集中逐行移动,并对每一行执行特定的操作,如检索数据、更新数据或删除数据。需要注意的是,不同的
数据库
管理系统(如MySQL、Oracle、SQL Server)对
游标
的支持有所不同,具体的语法和用法可能会有所差异。在循环内部,我们可以对每行数据执行特定的操作,这里仅仅是简单地输出了数据的信息。处理数据:对于每一行数据,可以执行特定的操作,如读取数据、更新数据或删除数据。语句打开
游标
,将查询结果集与
游标
相关联,并使
游标
可用于遍历结果集。语句删除
游标
,并释放
游标
的内存空间。
用户可以用SQL语句逐一从
游标
中获取记录,并赋给主变量,交由主语言进一步处理
主语言是面向记录的,一组主变量一次只能存放一条记录
仅
使用
主变量并不能完全满足SQL语句向应用程序输出数据的要求
嵌入式SQL引入了
游标
的概念,用来协调这两种不同的处理方式
前言:相信很多小伙伴在学习阶段肯定
使用
过存储过程及
游标
。但是进入企业工作几年发现,实际的项目中很少
使用
存储过程和
游标
。当然啦,有些公司也会
使用
的,毕竟很少。今天咱们就来分析一下储存过程机
游标
的
优缺点
,比较一下就一步了然了用与不用的选择啦。
存储过程的
优缺点
1. 运行速度:对于很简单的sql,存储过程没有什么优势。对于复杂的业务逻辑,因为在存储过程创建的时候,
数据库
已经对其进行了一...
首先在MySql中创建一张数据表:
CREATE TABLE IF NOT EXISTS `store` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`count` int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`)
) ENGI