在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行 *** 作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。如果曾经用 C 语言写过对文件进行处理的程序,那么游标就像您打开文件所得到的文件句柄一样,只要文件打开成功,该文件句柄就可代表该文件。对于游标而言,其道理是相同的。可见游标能够实现按与传统程序读取平面文件类似的方式处理来自基础表的结果集,从而把表中数据以平面文件的形式呈现给程序。
MySQL322限制的表大小为4GB。由于在MySQL323中使用了MyISAM存储引擎,最大表尺寸增加到了65536TB(2567_1字节)。由于允许的表尺寸更大,MySQL数据库的最大有效表尺寸通常是由 *** 作系统对文件大小的限制决定的,而不是由MySQL内部限制决定的。
InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建。这样,表的大小就能超过单独文件的最大容量。表空间可包括原始磁盘分区,从而使得很大的表成为可能。表空间的最大容量为64TB。
扩展资料
据DVB团队以及Cmshelp团队做CMS系统评测时的结果来看,MySQL单表大约在2千万条记录(4G)下能够良好运行,经过数据库的优化后5千万条记录(10G)下运行良好。
这对于MySQL是不公平的,那些CMS厂商非但没有把内核做好反而还在添加很多花哨的功能,最终导致其产品自身负载过低。
他们并没有针对自身负载效果作出相应的数据库优化方案及标准,而是继续保留着复杂的结构造成对MySQL的资源无休止的浪费,最终导致了其负载上的缺陷。
于是他们便充分发挥中国人的传统优势——变通:避重就轻的采用了所谓的分表式存储,虽然在一定程度上缓解了自身负载的缺陷,但是导致了网站后期维护以及资源上的浪费。
用一个不恰当的比喻来形容,MySQL中的的表就像一块地,单表就相当于利用这块地盖高层建筑充分利用达到高人员负载,但分表就相当于用这块地盖了一间平房。
如果为了达到高人员负载的话那就需要另开地皮达到目的,但是我们要思考,是地不够,还是他的能力不够,如此做法让人感到资源的浪费以及规划的严重缺陷。
1 可能存在问题,游标取值没有发生变化
2 原因可能是游标定义不当,导致游标取值没有变化。
另外,也有可能是在游标循环中没有对游标取值进行更新。
3 对于游标定义不当的问题,需要重新检查游标定义是否准确,对于游标循环中没有对游标取值进行更新的问题,可以直接在游标循环中对游标取值进行更新,保证游标的正确性。
1) 如果仅仅想把数据传给MySQL存储过程,那就用in类型参数;2) 如果仅仅从MySQL存储过程返回值,那就用out类型参数;3) 如果需要把数据传给MySQL存储过程经过计算再传回给我们,那就用inout类型参数。
create procedure pro(IN test_id INT,IN test_type INT)
begin
declare i int;
declare max_tps int;
declare mycur cursor for select max(tps) from bench_test_rawdata where bench_id=5 and bench_type=1 and bench_menthod =1 group by table_size;
open mycur;
set i=0;
while i<=5 do
fetch mycur into max_tps;
select max_tps;
set i=i+1;
end while ;
close mycur;
以上就是关于请教:mysql数据库有个游标吗全部的内容,包括:请教:mysql数据库有个游标吗、mysql数据库可以有多大(mysql数据库能存多大数据)、mysql存储过程游标取值没有变化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)