ITPUX技术网

交流 . 资讯 . 分享
Make progress together!
Linux操作系统下Oracle11g R2 RAC 安装配置教程
Oracle数据库培训-备份恢复-性能优化-集群容灾
Oracle数据库DBA高级工程师培训视频

MySQL如何快速创建大量随机数据进行性能测试

内容发布:luashin| 发布时间:2017-6-8 19:54:23
MySQL如何快速创建大量随机数据进行性能测试

思路:创建procedure,然后使用循环,不停insert数据。例如:
create procedure inst(n int)
begin
declare i int default 0;
set autocommit = 0;
repeat
set i = i + 1;
insert into xxx values(....);
until i=n  end repeat;
commit;
set autocommit = 1;
end/

当然,这样太死了,全部是固定数据,我们可以来创建function来返回些随机数据:
随机产生数字,范围1~3000(范围可以随意设定,我自身举个列子)
create function rn()
returns smallint
begin
declare res smallint default 0;
set res=floor(1+rand()*3000) ; #这里1和3000的位置可以更改为你需要的范围。
return res;
end/

随机返回指定字符个数,字符范围为大学写字母之间
create function rs(n int)
returns varchar(1024)
begin
declare chars char(52) default 'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';
declare res varchar(1024) default '';
declare i int default 0;
repeat
set i = i + 1;
set res = concat(res,substring(chars,floor(1+rand()*52),1));
until i=n end repeat;
return res;
end/
创建完这些function后,我们就可以使用rn()和rs(n)来获取数据数据并insert入测试表了,例如:

create procedure inst(n int)
begin
declare i int default 0;
set autocommit = 0;
repeat
set i = i + 1;
insert into xxx values(rn(),rs(12),rs(7),....);
until i=n  end repeat;
commit;
set autocommit = 1;
end/



上一篇:MySQL 5.7多源复制详解
下一篇:MySQL压力测试工具简单教程--mysqlslap
回复

使用道具 举报

1框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表