我想做一个大点的数据表来做实验,
谢了个存储过程向数据表中插入数据,
存储过程是根据输入的参数循环向数据表中插入数据,
但问题是数据比较少的时候没有问题,
一旦数据比较大(比如:1500000),
就会出现一直跑下去,
不会结束,
能从中午一路跑到晚上还不结束,
基本算是十个小时了。
不应该那么慢吧,
400000才一个小时多点就完了。
求大神们解释。
存储过程是
create procedure insert_data(in numAll int(10))
begin
declare i int default 0;
set autocommit = 0;
repeat
set i = i+1;
insert into testTable values(null,getRandNum(5),getRandString(3,40));
until i = numAll
end repeat;
commit;
end $$
谢了个存储过程向数据表中插入数据,
存储过程是根据输入的参数循环向数据表中插入数据,
但问题是数据比较少的时候没有问题,
一旦数据比较大(比如:1500000),
就会出现一直跑下去,
不会结束,
能从中午一路跑到晚上还不结束,
基本算是十个小时了。
不应该那么慢吧,
400000才一个小时多点就完了。
求大神们解释。
存储过程是
create procedure insert_data(in numAll int(10))
begin
declare i int default 0;
set autocommit = 0;
repeat
set i = i+1;
insert into testTable values(null,getRandNum(5),getRandString(3,40));
until i = numAll
end repeat;
commit;
end $$
解决方案 »
- 怎么备份mysql数据库中一张表
- 如何建立数据库网站
- MySQL 5.1 安装过程中报apply security setting错误的解决办法
- 请教mysql存储过程:第一列按表某字段统计
- mysql数据库删除数据时怎样能够把物理硬盘上占用的空间也清空掉
- Mysql 的远程调用问题,急啊!
- 在win2000下,怎样设置才能使mysql开机时自动启动?怎样把mysql默认字符集改为GB2312?
- mysql为什么不使用我创建的索引?关于mysql索引应用的问题
- 大量的数据如何导入mysql
- 数据库主从,为什么在sqlyog里不起作用,但在命令行起作用呢
- 单条记录的长度是否会影响数据库查询的效率?
- 可以根据数据库的规模算出增加索引之后查询效率的提升幅度么?
returns int(5)
begin
declare return_num int(5) default 0;
set return_num = floor(1+rand()*99999);
return return_num;
end $$ create function getRandString(minLength INT,maxLength INT)
returns varchar(20)#函数返回的是长度小于20的字符串
begin
declare char_str varchar(52) default
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
declare return_str varchar(20) default '';
declare i int default 0;
declare now int default 0;
set now = floor(1+rand()*(maxLength-minLength))+minLength;
while i < now do
set return_str = concat(return_str,substring(char_str,floor(1+rand()*52),1));
set i = i + 1;
end while;
return return_str;
end $$